只要没有输入空输入,就打印数字

时间:2015-11-17 16:45:12

标签: python io output

如果我要求用户输入数字,只要没有输入空字符串就会继续,如果输入空字符串,则程序结束。 我目前的代码是:

n=0
while n !=  "":
    n = int(input("Enter a number: "))

但显然这不是我想要的。我可以删除int输入并将其保留为常规输入,但这将允许所有类型的输入,我只想要数字。 我之前对此有何看法?

2 个答案:

答案 0 :(得分:1)

在空字符串上调用ObjectLoader将导致int(),因此您可以将所有内容封装在try块中:

ValueError

这也有一个额外的好处,就是捕获任何不是int的ELSE。

答案 1 :(得分:0)

我建议使用try / except而不是。

此外,使用try / except时,您可以将循环更改为使用while True。然后,一旦找到无效输入,您就可以使用break

此外,您的解决方案也没有输出任何内容,因此您可能希望在获得输入后设置print语句。

以下是如何将所有这些放在一起并测试仅输入整数的示例:

while True:
    try:
        n = int(input("Enter a number: "))
        print(n)
    except ValueError:
        print("You did not enter a number")
        break

如果你想更进一步,并处理带小数的数字,你可以尝试转换为浮点数:

while True:
    try:
        n = float(input("Enter a number: "))
        print(n)
    except ValueError:
        print("You did not enter a number")
        break