import random
number = random.randint(0,10)
#print (number)
guess = int(input("I'm thinking of a number between 1 and 10. \nPlease guess what it is: "))
#print(guess)
while guess != number:
if guess > number:
print("That is too high!")
guess = int(input())
elif guess < number:
print("That is too low")
guess = int(input())
else:
print("Thats it! You win!")
我正在研究一些python编码示例,并且困惑为什么我的else语句不打印?代码目标是生成一个随机数,然后让用户输入一个猜测,然后根据猜测是低于还是高于该随机数,让计算机通知用户,如果用户猜对了,然后告诉他们赢得的用户。我已经对此进行了测试,当我输入正确的数字时,代码就结束了,并没有打印出“就这样!您赢了!”。为什么会这样,如何获取它以打印出来?
答案 0 :(得分:3)
循环之前的猜测输入通常与要猜测的数字不同,因此循环不会进入。
您还有其他更细微的错误:例如,输入在一个循环中被两次采集,从而为不正确的反馈创造了条件。此外,默认情况下会确认您的获胜,也就是说,如果猜的不太高,或者猜的不太低,那就是赢。肯定的断言(例如如果猜测等于数字)可能更安全地宣告胜利。
这是一种将每个动作隔离在循环中的一个位置的设计,将逻辑错误的风险降到最低。
import random
number = random.randint(0, 10)
guess = None
while guess != number:
guess = int(input())
if guess > number:
print("That is too high!")
elif guess < number:
print("That is too low")
elif guess == number:
print("Thats it! You win!")
else:
print('that was not supposed to happen')