我的程序会继续告诉用户猜测较低,即使用户键入正确的数字。我该如何解决这个问题?
import random
a=raw_input('enter a number')
b= random.randrange(0,11)
while a!=b:
if a < b:
print ('you are not correct, try a higher number')
if a > b:
print('you are not correct, try a lower number')
if a== b:
print('wwcd')
print b
答案 0 :(得分:1)
目前的问题是a
永远不会更新&amp;你使用'a'
字符而不是a
变量
while `a`!=b:
将常数字符与数字b进行比较(并且总是更大)。它应该是:
while a!=b:
此更改应适用于您的所有条件语句(也可能最好删除重复的if 'a'== b
块,因为只需要一个)
对于下一部分,您需要更新a
作为循环的一部分(以便用户可以更改输入)。您只需要向下指定a
值的部分移动:
while a!=b:
a=raw_input('enter a number')
//rest of your conditionals statements
编辑:
你有第3个问题。 raw_input()
函数返回string
,您需要int
进行比较。要修复它,只需将其强制转换为int:int(raw_input('Enter a number'))
,或者更恰当地使用Python 2.x的input()
函数。这将评估您输入的任何内容,因此当您输入数字时将返回int
。但请注意,Python 3.x input()
在2.x中的行为与raw_input()
相似,raw_input()
已消失。