wie behebe ich diesen Fehler in python 3.3? TypeError: nicht zu bestellen-Arten: str() < int()
ich versuche zu erstellen, die eine Zahl erraten Spiel, aber ich bekomme die Fehlermeldung für "guessestaken"ich kopiert den code aus http://inventwithpython.com/IYOCGwP_book1.pdf Seite 57.Sorry, ich bin ein bisschen neu für python.
import random
guessestaken=0
print ("hello what ur name?")
myname=input()
number=random.randint(1,20)
print ("well " + myname + " i am thinking of a number guess it")
while guessestaken < 6 :
guessestaken=guessestaken+1
guess =input('take a guess')
guess = int(guess)
if guess <number:
print('too low')
if guess >number:
print ('too high')
if guess ==number:
break
if guess ==number:
guessestaken=str(guessestaken)
print ('good job ' + myname + ' you are right!')
print ('you guessed it in ' + guessestaken + ' guesses')
if guess !=number:
guessestaken = str(guessestaken)
print ("I am sorry but you couldn't get it right")
print ("you couldn't guess it in " + guessestaken + " guesses")
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist die Fehlermeldung (es versucht) Sie darüber informieren, dass man versucht, zu vergleichen eine
str
mit einemint
. Insbesondere sollte es einen traceback Sie darüber informieren, wo die Fehler Auftritt:Können Sie sehen, dass Sie explizit konvertieren
guessestaken
einen string:Das ist eindeutig nicht notwendig. Wenn Sie drucken möchten, die Anzahl von Vermutungen getroffen, entweder tun Sie es inline mit
+
(was nicht empfehlenswert ist oder "pythonic") oder verwenden Sieformat
:format
"? Ich würde eher sagen "entwederformat
oder die%
Betreiber, oder geben Sie einfach drei Argumenteprint
, sondern beenden Sie die Verkettung von strings von hand...Die Sie konvertieren
guesstaken
string, um es anzuzeigendann
while
- Schleife prüft, obwas bewirkt, dass Typ-Fehler (python nicht zu vergleichen string und int).
Sie sollten benutzen Sie einfach andere Namen für die Zeichenfolge, oder tun Sie es inline mit python-Konstrukte wie
print
. Gibt es nicht einen einzigen Grund zu nennenstr
hier.