4 回答
TA贡献2065条经验 获得超14个赞
阅读这两行:
if inputNumber >= 1 and inputNumber <= 20: while inputNumber:
循环体while不会改变inputNumber。如果它在 1..10 或 12..20 范围内,则您的循环等于while True:并且它将永远运行。您可能希望在if循环内部进行测试,并且您肯定希望在您返回评估循环条件时更改值,例如通过input设置新值。
TA贡献1830条经验 获得超3个赞
尝试这个
def guesst(secretNumber):
numberOfGuesses = 0
while True:
inputNumber = int(input('I\'m thinking of a number between 1 and 20, try to guess which one: '))
if inputNumber > secretNumber:
numberOfGuesses += 1
print('Your guess is too high.')
elif inputNumber < secretNumber:
numberOfGuesses += 1
print('Your guess is too low.')
elif inputNumber == secretNumber:
print('Your guess is correct, congratulations! You\'ve my number in ', numberOfGuesses, 'guesses.')
break
else:
print('Please enter a number between 1 and 20')
# Defining the variables used by the function
snum = 11
guesst(snum)
当 while 循环重复时,您需要再次收集用户的输入,因此您的输入语句应该在 while 循环中,而不是在函数之外。
您的 if 语句也应该在 while 循环内。
TA贡献1802条经验 获得超10个赞
变量 inputNumber 不会在 while 循环中更新。
尝试添加:
inputNumber = int(input("please try again"))或者大意是允许用户在下一次迭代之前更新他们的猜测。
添加回答
举报
