我写了这个程序。但是,奇怪的是它有时会打印正确的数字,我想要它打印的数字有时却没有。我的意思是,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)
答案 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_guess
和computer_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...