有时该程序有效,有时print()命令有时无效。怎么了?

时间:2018-07-21 21:10:07

标签: python python-3.x

我写了这个程序。但是,奇怪的是它有时会打印正确的数字,我想要它打印的数字有时却没有。我的意思是,while循环应该继续循环,直到玩家键入/猜测计算机选择的号码为止。因此,当玩家进入计算机已选择的4(在此示例中)时,while语句为假,因此执行了打印命令并应该进行打印。究竟。选秀权是4。但是有时它会打印出玩家键入的号码,但是有时我会猜出例如3并打印出来。究竟。选择是4。我不知道。它是什么? (提示非常感谢)

import random

interval_start = 1
interval_end = 5

computer_pick = random.randint(interval_start, interval_end)
player_guess = int(input("I picked a number between %s and %s. Take a guess." % (interval_start, interval_end)))

while player_guess != computer_pick:
    player_guess = int(input("Nah fam. Guess again."))

    print("Exactly. The pick was %s" % computer_pick)

2 个答案:

答案 0 :(得分:1)

如果玩家第一次尝试的猜测是正确的,则您的while循环将不会执行。

由于您的print语句嵌套在while循环中,因此只有在第一个猜测不正确时才会执行该语句(在这种情况下,无论用户的猜测是否正确,都将执行该语句。< / p>

确定您的print,它应该可以正常工作。

答案 1 :(得分:0)

这里的问题很简单,让我们在while循环之后遍历代码块-

while player_guess != computer_pick: # Okay so I will run till player_guess is not equal to computer_pick
....player_guess = int(input("Nah fam. Guess again.")) # Four spaces, okay, I am part of this loop

....print("Exactly. The pick was %s" % computer_pick) # Four spaces, okay, I am also part of this loop

我已将缩进替换为.,以使您了解缩进决定了什么代码将成为哪个块的一部分。因此,在上述while循环运行之前,还将打印Exactly行。

我们不想要那样。我们想要的是退出while循环时,即player_guesscomputer_pick相等时,我们打印出它们选择了正确的数字。因此,我们删除了四个缩进,并将print语句带出while循环。像这样-

while player_guess != computer_pick: # Okay so I will run till player_guess is not equal to computer_pick
....player_guess = int(input("Nah fam. Guess again.")) # Four spaces, okay, I am part of this loop

print("Exactly. The pick was %s" % computer_pick) # Four spaces, okay, I am also part of this loop

现在完成while之后,就打印出Exactly...