【问题标题】:While loop gets stuck second time round and does not execute all the way through - PythonWhile 循环第二次卡住,并没有完全执行 - Python
【发布时间】:2022-11-18 01:35:31
【问题描述】:

在这里快速提问。我正在用 Python 编写一个 while 循环(编码如下),它应该询问某人他们想要什么饮料,如果输入不正确(也就是不在列表中),它会循环回来并再次询问他们,直到他们给出有效答案。

目前正在发生的事情是,如果我输入正确答案,它就会完美运行。如果我输入的答案不正确,它会正确打印“抱歉,该饮料不可用,请选择另一种饮料:”这一行,并再次询问他们“您想要哪种饮料?:”。然而,这就是问题的开始。它没有接受这个答案并再次运行 for 循环,而是似乎卡在了“drink =”和“count =”这两行中,并一遍又一遍地问我“Which drink would you like?:”,从来没有能够跳出循环。我很困惑为什么会这样。为什么第一次可以完美循环,第二次就不能进入for循环只执行前两行?任何帮助将不胜感激。

while count <= 5:
            drink = input("Which drink would you like?: ")
            count = 0
            for line in drinks:
                if drink == line["Drink"]:
                    print(f"Here is your drink: {drink}")
                    count = 6
                    break
                else:
                    count += 1
                    if count == 5:
                        print("Sorry, that drink is not available, please select another drink: ")

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    您每次都将计数重置为 0 - 将该行移出 while 循环。

    作为类似这样的调试提示,在无限循环内添加一个 println,打印出与循环条件相关的任何变量的值。

    编辑:重新阅读您的描述,听起来您实际上并不希望 while 循环在五次迭代后终止,并且无限循环不是您的问题 - 对于造成的混淆,我们深表歉意。也就是说,所有引用 count 的代码都会混淆事物,并增加其他错误的风险。

    需要明确的是,如果您输入错误答案然后输入正确答案会怎样?你能显示确切的输出吗?

    对于进一步的东西,你能说明drinks是如何定义的吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-31
      • 2020-03-01
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多