Python:为什么我的print语句不能在其他地方运行?

时间:2019-07-17 06:29:37

标签: python python-3.x while-loop

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语句不打印?代码目标是生成一个随机数,然后让用户输入一个猜测,然后根据猜测是低于还是高于该随机数,让计算机通知用户,如果用户猜对了,然后告诉他们赢得的用户。我已经对此进行了测试,当我输入正确的数字时,代码就结束了,并没有打印出“就这样!您赢了!”。为什么会这样,如何获取它以打印出来?

1 个答案:

答案 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')