【问题标题】:How to use do/while? [duplicate]如何使用do/while? [复制]
【发布时间】:2019-10-26 18:44:31
【问题描述】:

我想获得大于零的用户输入。如果用户输入的不是正整数,则再次提示他该消息,直到他输入为止。

x = input("Enter a number:")
y= int(x)

while y<0:
    input("Enter a number:")
    if not y<0:
        break

如果我先添加一个坏值,然后添加一个好值,它只会不断要求一个新值。就像 Try -2 它再次询问,但我给 2 并且它仍然在询问。为什么?

【问题讨论】:

标签: python python-3.x input while-loop


【解决方案1】:

while 循环之前之前为y 赋值,然后进入循环而不从输入中为y 赋值。

只需更改您的代码:

x = input("Enter a number:")
y= int(x)

while y<0:
    y = int(input("Enter a number:"))
print('out?')

【讨论】:

    【解决方案2】:

    第一次将 input 的结果分配给 x,并将 x 转换为数字 (int(x)),但在第二次调用 input 之后却没有。那是你的错误。

    你有机会得到这个错误是因为你的代码必须重复两次相同的事情(调用输入并将结果转换为数字)。这是因为不幸的是 Python 没有 do/while 构造,正如您所提到的(因为没有使用缩进和 Python 的简单解析器定义它的好方法,现在为时已晚)。

    通常的方式是使用while Truebreak

    while True:
        x = input("Enter a number:")
        y = int(x)
        if not y<0:
            break
    

    【讨论】:

      猜你喜欢
      • 2014-10-03
      • 2012-03-08
      • 2010-09-20
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多