Type Error in Python?

1 Antwort

Mit der Funktion input() liest du die Eingaben des Benutzers als String ein, du willst aber kein String haben sondern eine Zahl (int).

Also Konvertiere den String, den du durch input() bekommst einfach zu einem int um: 

int(input())

Ahh jetzt verstehe ich ich.

Dabei habe ich ständig versucht a als int zu deklarieren dabei war das input das Problem.

Danke ^^

0
@Chakly

Bei Python kann man nicht eine Variable zu einem bestimmten Datentypen zuweißen. Wichtig zu wissen ist, dass es bei Python Instanzen und Referenzen gibt.

Wenn du z.B sagst:

x = 5

Dann ist "x" die Referenz die auf die Instanz mit dem Wert 5 zeigt. Der Wert 5 wurde im Speicher hinterlegt.

Schreibst du nun aber direkt danach:

x = "Hallo"

Ist "x" nun noch immer eine Referenz, die aber auf die Instanz "Hallo" zeigt. 

Da nun nichts mehr auf die Instanz mit den Wert 5 zeigt, die wir im Speicher haben, wird diese durch den sogenannten "Garbage Collector" automatisch gelöscht.

Also nochmal: Referenzen können zu jeder beliebige Instanz mit einem bestimmten Datentypen zeigen, also kann man nicht festlegen, dass z.B die Variable "x" immer ein int sein soll.

0

Python copyfile funktioniert nicht?

Ich habe einen Code welcher mir diese Fehlermeldung auswirft. Allerdings komme ich nicht weiter mit der Fehlermeldung. Bei google habe ich leider auch nichts gefunden. Ich hoffe ihr könnt mir helfen.

Fehlercode:

ERROR! Cannot copy files.
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Tim PC\PycharmProjects\MakeBackup\save.py", line 29, in savedata
    copyfile(line.rstrip(), dest + dat)
  File "C:\Users\Tim PC\AppData\Local\Programs\Python\Python36-32\lib\shutil.py", line 121, in copyfile
    with open(dst, 'wb') as fdst:
PermissionError: [Errno 13] Permission denied: 'C:\Users\Tim PC\PycharmProjects\MakeBackup\testbackups\17.05.2018 14-26-54'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Tim PC\AppData\Local\Programs\Python\Python36-32\lib\tkinter__init__.py", line 1702, in __call__
    return self.func(args)   File "C:/Users/Tim PC/PycharmProjects/MakeBackup/main.py", line 116, in <lambda>     save_1_button = Button(fenster, text="Save", command=lambda: save.savedata())   File "C:\Users\Tim PC\PycharmProjects\MakeBackup\save.py", line 32, in savedata     raise Exception Exception 

Quellcode:

https://gist.github.com/McCrafterIV/20388d3a2b8f1519ccc9f1fa811b2f9f

...zur Frage

Hilfe bei Python. Irgendwer?

Die Funktionen: Sissors, Paper und Stone sollen zur Variable Spieler addieren, tun sie aber nicht :(

Weiß jemand wo der Fehler liegt?

    import tkinter
from random import randint
top=tkinter.Tk()


z=1


pcwahl=randint(1,3)


  

x=1

def sissors(event):
    global spieler
    if pcwahl==1:
        pwahl["text"]= "Die Wahl des PCs ist: Schere"
    elif pcwahl==2:
        pwahl["text"]="Die Wahl des PCs ist: Papier"
    elif pcwahl==3:
        pwahl["text"]="Die Wahl des PCs ist: Stein"
    spieler=spieler+1
        

def paper(event):
    global spieler
    if pcwahl==1:
        pwahl["text"]= "Die Wahl des PCs ist: Schere"
    elif pcwahl==2:
        pwahl["text"]="Die Wahl des PCs ist: Papier"
    elif pcwahl==3:
        pwahl["text"]="Die Wahl des PCs ist: Stein"
    spieler=spieler+2
         
def stone(event):
    global spieler
    if pcwahl==1:
        pwahl["text"]= "Die Wahl des PCs ist: Schere"
    elif pcwahl==2:
        pwahl["text"]="Die Wahl des PCs ist: Papier"
    elif pcwahl==3:
        pwahl["text"]="Die Wahl des PCs ist: Stein"
    spieler=spieler+3
        
üsch=tkinter.Label(top,font="Arial", text="Herzlich Willkommen!")
üsch.pack()
üsch2=tkinter.Label(top,font="Arial", text="Wählen Sie bitte Schere, Stein oder Papier.")
üsch2.pack()


schere=tkinter.Button(top,font="Arial",height=5,width=10, text="Schere")
schere.pack()
schere.bind("<Button-1>", sissors)

papier=tkinter.Button(top,font="Arial",height=5,width=10, text="Papier")
papier.pack()
papier.bind("<Button-1>", paper)

stein=tkinter.Button(top,font="Arial",height=5,width=10, text="Stein")
stein.pack()
stein.bind("<Button-1>", stone)

abstand=tkinter.Label(top,text=" ") 
abstand.pack()

pwahl=tkinter.Label(top,font="Arial", text=" ")
pwahl.pack()


wahl=tkinter.Label(top, text=" ")
wahl.pack()

spieler= 1



if spieler==1 and pcwahl==1:
    wahl["text"]= "Unentschieden!"
    
if spieler==1 and pcwahl==2:
    wahl["text"]="Sieg!"
elif spieler==2 and pcwahl==3:
    wahl["text"]="Sieg!"
elif spieler==3 and pcwahl==1:
    wahl["text"]="Sieg!"

if spieler==1 and pcwahl==3:
    wahl["text"]="Verloren :("
elif spieler==2 and pcwahl==1:
    wahl["text"]="Verloren :("
elif spieler==3 and pcwahl==2:
    wahl["text"]="Verloren :("

if pcwahl==1:
     print(spieler)




top.mainloop()  
...zur Frage

Wie kann man in Python überprüfen ob in einer Datei schon etwas drin steht?

Ich schreibe gerade an einem Scipt, bei dem man Fragen stellen kann. Ich hab schon, dass man sie in einer txt-Datei speichern kann. Doch ich weiß jetzt nicht wie man überprüfen kann ob die Frage schon in der Datei steht.

Das ist was ich hab:

file = open("fragen.txt","a")

b = input("Fragen?") if b == "Ja": c = input("Frage:") file.write(c) file.write('\n') else: print("Ende")

file.close()

...zur Frage

Wie kann ich ein Programm in Adobe Brackets ausführen?

Adobe Brackets ist ja dieser Open-Source Code Editor. Ich habe bis jetzt immer nur HTML und CSS verwendet. Dort sah ich mir immer meine Website direkt im Browser an. Nun möchte ich aber auch mit Python programmieren. Ein Programm, welches mit Python erstellt wurde, muss aber auch ausgegeben/ausgeführt werden, jedoch weiß ich nicht wie. Hab in Brackets, keine Funktion gefunden, ein solches Programm auszuführen.

Vielleicht könntet ihr mir weiterhelfen.

Falls es noch jemanden interessiert, das hier ist mein Programm (Hab grade erst mit Python angefangen, drum ist es noch so ein Anfängerprogramm:

Vornahme = input("Vornahme: ")

Nachnahme = input("Nachnahme: ")

Domain = input("Wunschdomain: ")

TopLevelDomain = input("Wunsch-Top-Level-Domain: ")

print("E-Mail Generator")

print()

print(Vornahme)

print(Nachnahme)

print(Wunschdomain)

print(TopLevelDomain)

print(Vornahme, ".", Nachnahme, "@", Wunschdomain, ".", TopLevelDomain)

...zur Frage

Was ist das Problem mit folgendem Python Code?

dashier = int(input("Hier Zahl eingeben: "))

summe = dashier + 7

print(summe)

if summe = 14: print("ich habs geschafft") else: print("it didnt work")

...zur Frage

Python input() Funktion funktioniert nicht?

Hallo allerseits. Ich habe mich mal ein Wenig mit Python beschäftigt und versucht "Schere Stein Papier" zu Programmieren. Im folgenden Script verliert man zwar immer (Wenn es funktionieren würde...) aber noch ist das beabsichtigt.

while "true":
    print("Rock (r), Paper (p) or Scissors (s)? (x to exit)")
    ropasc = input(":")
    if ropasc=="r":
        print("I chose Paper!")
        print("I won!")
        print()
        print()
    elif ropasc=="p":
        print("I chose Scissors")
        print("I won!")
        print()
        print()
    elif ropasc=="s":
        print("I chose Rock!")
        print("I won!")
        print()
        print()
    elif ropasc=="x":
        break
    else:
        print("I didn't understand this.")
print("Bye!")

Wenn ich es jedoch ausführe kommt zuerst der output aber sobald ich etwas eingebe und enter drücke komm folgende Fehlermeldung (ich habe r eingegeben):

Traceback (most recent call last):
  File "rps.py", line 3, in <module>
    ropasc = input(":")
  File "<string>", line 1, in <module>
NameError: name 'r' is not defined
...zur Frage

Was möchtest Du wissen?