import random
secret = random.randint (1,99)
guess = 0
tries = 0
print ("AHOY! I'm the Dread Pirate Roberts, and I have a secret!")
print ("It is a number from 1 to 99. I'll give you 6 tries. ")
while guess != secret and tries < 6:
guess = input ("What's yer guess? ")
if guess < secret:
print ("Too low, ye scurvy dog")
elif guess > secret:
print ("Too high, landrubber!")
tries = tries + 1
if guess == secret:
print ("Avast! Ye got it! Found my secret, ye did!")
else:
print ("No more guesses! Better luck next time, matey!")
print ("The secret number was", secret)
我一直收到这个错误:如果猜测&lt;秘密: TypeError:unorderable类型:str()&lt; INT()
答案 0 :(得分:12)
guess = input ("What's yer guess? ")
致电input
会给您一个string
,而不是int
。然后,当您使用guess
比较<
时,您需要int
才能比较数值。尝试按照以下方式做一些事情:
try:
guess = int(input("What's yer guess? "))
except ValueError:
# Handle bad input
答案 1 :(得分:6)
因为Python是强类型的,所以你无法比较字符串和int。您从input()
获得的内容是str
而不是int
。因此,在进行比较之前,您需要将str
转换为int
。
guess = int(input("What's yer guess"))
当输入无法转换为int
时,您还应该处理可能发生的异常。所以,代码变成了:
try:
guess = int(input("What's yer guess"))
except ValueError:
print ('Arrrrr... I said a number ye lily-livered dog')
此外,input()
是不安全的,至少在Python 2.x中是这样。这是因为input()
接受任何有效的Python语句。如果您使用的是Python 2.x,则应使用raw_input()
。如果您使用的是Python 3,请忽略这一点。
try:
guess = int(raw_input("What's yer guess"))
except ValueError:
print 'Arrrrr... I said a number ye lily-livered dog'
答案 2 :(得分:1)
你拼错了“landlubber”。
Landrubber是一个爱抚地面的人 陆地人是一个不了解船的人。
您需要先将输入解析为int,然后再将其与int进行比较。