Python 猜谜游戏只会认为猜得太高
有人知道为什么这个函数只输出猜测过高的结果吗?关于如何修复的想法Python 猜谜游戏只会认为猜得太高,python,Python,有人知道为什么这个函数只输出猜测过高的结果吗?关于如何修复的想法 from __future__ import print_function import random def goguess(): HighNumber= random.randint(1,100) LowNumber= random.randint(1,HighNumber-1) answer = random.randint(LowNumber+1,HighNumber) guesses =
from __future__ import print_function
import random
def goguess():
HighNumber= random.randint(1,100)
LowNumber= random.randint(1,HighNumber-1)
answer = random.randint(LowNumber+1,HighNumber)
guesses = 0
print ('I have a number between', LowNumber, 'and', HighNumber, 'inclusive.')
guess = raw_input('guess:')
while guess != answer:
if guess > answer:
print(guess, 'is too high.')
guesses+=1
print('Guess:', guesses)
guess = raw_input('guess:')
if guess < answer:
print(guess, 'is too low')
guesses+=1
print('Guess:',guesses)
guess = raw_input('guess:')
if guess == answer:
print ('Right! My number is', answer,'! You guessed in ',guesses, 'guesses!')
from\uuuuu future\uuuuu导入打印功能
随机输入
def goguess():
HighNumber=random.randint(1100)
LowNumber=random.randint(1,HighNumber-1)
答案=random.randint(低数字+1,高数字)
猜测=0
打印('我有一个介于',LowNumber'和',HighNumber'之间的数字,包括')
猜测=原始输入(“猜测:”)
猜猜看!=答复:
如果猜测>回答:
打印(猜测“太高了”。)
猜测+=1
打印('猜测:',猜测)
猜测=原始输入(“猜测:”)
如果猜测<答案:
打印(猜测“太低”)
猜测+=1
打印('猜测:',猜测)
猜测=原始输入(“猜测:”)
如果猜测==答案:
打印('对!我的号码是',回答'!你猜中了',猜中了,'猜中了!')
您需要将其输入转换为int
guess = int(raw_input('guess:'))
否则,您会将str
与int
进行比较,str
将始终更大
>>> '3' > 7
True
>>> int('3') > 7
False
在Python3.x中,您会以更明显的方式看到这个问题,因为您无法再像这样比较这些类型了
>>> '3' > 7
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
'3' > 7
TypeError: unorderable types: str() > int()
'3'>7
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
'3' > 7
TypeError:无序类型:str()>int()
Guess必须是整数才能与整数进行比较。原始输入返回一个整数字符串。可以使用int()将字符串转换为整数。之后
你可以储存
intguess = int(guess)
这与您当前的问题无关,但如果
HighNumber
的值为1,您的程序将崩溃。然后LowNumber
尝试分配给random.randint(1,0)
,这不起作用。
intguess = int(guess)