首页 > 解决方案 > Python:这里有什么错误?输出不断产生再试一次

问题描述

输出不断生成“再试一次”。这里有什么错误?

import random

x = int(input("guess a number between 0 and 10:   \n"))
y = random.randint(0,10)
n = "try again"
while n == "try again":
    if y == x:
        print("congradulations\n")
        break;
    else:
        input("try again\n")

标签: python

解决方案


你循环只要n == "try again". 既然什么都没有改变n,那就是永远。

你跳出循环 if y == x。但是,由于没有任何变化,y或者x,如果第一次不是真的,它永远不会是真的,所以你永远不会跳出循环。

您可能想将结果存储在 中x,就像您对第一个所做的那样input

n = "try again"
while n == "try again":
               if y == x:
                    print("congradulations\n")
                    break;
               else:
                    x = int(input("try again\n"))

现在,您将实际测试它们以查看它们是否是正确的答案,而不是忽略用户的重试。


但是,当我们这样做时,您可以将其简化很多。第一,n永不改变,所以没用;你可以循环while True:

while True:    
   if y == x:
        print("congradulations\n")
        break;
   else:
        x = int(input("try again\n"))

或者您可以将y == x检查移到while循环中:

while y != x:
    x = int(input("try again\n"))
print("congradulations\n")

推荐阅读