与while循环中if条件的输出混淆

时间:2015-11-25 23:42:37

标签: python

我正在学习编程,这是我写的第一个python代码。 这是一个猜测游戏,如果用户键入数字5将打印“你赢了”,如果它大于5打印“太高”,如果小于5打印“太低”。

我为此编写了代码但是当用户输入数字5时,  它打印“太低”并打印“你赢了”这不是我想要的,当输入数字5,它应该输出消息“你赢了”。 我需要解释为什么代码输出说“太低”并说“你赢了” 用户输入5号??

print("Welcome")
guess = 0
while guess != 5:
    g = input("Guess a number: ")
    guess = int(g)
    if guess > 5:
        print("too high")
    else:
        print("too low")
print("You won")

结果是:

Guess a number: 4
too low
Guess a number: 6
too high
Guess a number: 5
**too low  // this isn't supposed to be, this is wrong
You won**

2 个答案:

答案 0 :(得分:4)

您的else需要测试该值不是5

else:

应该是

elif guess < 5:

因为5不大于5

答案 1 :(得分:2)

问题是你的猜测= 5。

第一个if是否定的,所以它继续移动到else并打印&#34;太低&#34;。

更改

else:
        print("too low")

elif guess < 5:
       print("too low")

这不会再发生了。 初学者的一个好方法是分析边界情况,在这种情况下猜测= 5并分析你的程序将在那里做什么。