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())
14

Ahh jetzt verstehe ich ich.

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

Danke ^^

0
15
@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

Kann mir wer meinen Fehler erklären bzw. diesen Berichtigen (Python)?

Hallo Leute!!

Ich muss ein Programm für die Schule in Python schreiben (ich bin totaler Anfänger...ich bitte um Rücksicht;D) Doch dann bekomme ich eine Fehlermeldung und weiß nicht, was ich falsch gemacht habe...

P.S Ich benutze Python 3.4.2

Das Programm:

import tkinter

Material = tkinter.IntVar()
Material.set(0)

#Funktion der Buttons (Ende)
def ende():
    main.destroy()

#Hauptfenster
main = tkinter.Tk()

#Elemente/Objekte
lb = tkinter.Label(main, text = "Hier koennen Sie das Material fuer den Boden Ihres Hauses auswaehlen...")
RButton_Stein = tkinter.Radiobutton(main, text="Stein", variable=Material,value=1)



#Anzeigen der Elemente/Objekte
lb.pack()
RButton_Stein.pack()

Button_Ende = tkinter.Button(main, text = "Auswaehlen", command = ende)

Button_Ende.pack()

#Endlosschleife
main.mainloop()

print(Material)

Die Fehlermeldung (Shell):

 Traceback (most recent call last):
  File "I:\Technik\Tkinter.py", line 3, in <module>
    Material = tkinter.IntVar()
  File "C:\Program Files\Python35\lib\tkinter\__init__.py", line 351, in __init__
    Variable.__init__(self, master, value, name)
  File "C:\Program Files\Python35\lib\tkinter\__init__.py", line 233, in __init__
    self._root = master._root()
AttributeError: 'NoneType' object has no attribute '_root'
...zur Frage

Wie macht man bei Turtle ein Tik tak to spiel?

Hallo

wir haben in der Schule in Inforamtik so einen Arbeitsauftrag (freiwillig erhöhrt unsere Note um 1) wo wir mit Python mit Turtle so ein Tik tak to spiel programmieren müssen.

Ich bin derzeit soweit dass ich mit right und forward dieses Spielfeld aufgemalt habe,

Aber ich haeb absolut keinen Plan wie das weiter gehen soll also was man da machen muss damit abwechselnt der Spieler und der Computer in einen Feld klicken kann und dann das x oder das o erscheint.

von der gewinn meldung ganz zu schweigen.

kennt sich da jemand aus?

mfg

lisa

...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 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?