【问题标题】:Python - User input to determine a condtion in a while loop [duplicate]Python - 用户输入以确定while循环中的条件[重复]
【发布时间】:2016-06-29 22:31:50
【问题描述】:

为什么下面的代码会产生无限循环?如果我将 y 的值硬编码为等于 10,它不会永远持续下去,但如果我通过用户输入输入 10,它会持续下去。

x = 0
y = raw_input("Enter a Number: ")

while x <= y:
    x = x + 1
    if x %2 == 0:
        print x
    else:
        print "odd"

【问题讨论】:

  • 使用while x &lt;= int(y):raw_input() 返回一个字符串,而不是整数。
  • @vaultah,它不完全是重复的。提问者根本不知道raw_input() 无论输入如何都会返回字符串。

标签: python python-2.7 while-loop infinite-loop


【解决方案1】:

您可能希望将 y 值(现在是一个字符串)转换为一个数字。

例如:

y = int(raw_input("Enter a number: "))

【讨论】:

  • 另外,你可以使用while x &lt;= y:而不是for x in range(0, y+1):
  • 我觉得他们应该为此类问题分发笨蛋徽章。我现在正在打脸。谢谢!
【解决方案2】:

解释@SiggyF 的答案,修改您的代码以消除不必要的行:

y = int(raw_input("Enter a number: "))
for x in range(0, y+1):
    if x % 2 == 0:
        print(x)
    else:
        print("odd")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 2013-11-16
    • 2020-02-15
    • 1970-01-01
    相关资源
    最近更新 更多