Python 只要未输入空输入,即可打印数字

Python 只要未输入空输入,即可打印数字,python,io,output,Python,Io,Output,如果我要求用户输入数字,只要不输入空字符串,数字就会继续输入,如果输入空字符串,则程序结束。 我目前的代码是: n=0 while n != "": n = int(input("Enter a number: ")) 但很明显这不是我想要的。我可以删除int输入并将其作为常规输入,但这将允许所有类型的输入,我只需要数字。 我以前有没有用另一种方式来看待这件事 我建议改为使用try/except 另外,通过使用try/except,您可以将循环改为使用,而使用True。然后,一旦发现

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

n=0
while n !=  "":
    n = int(input("Enter a number: "))
但很明显这不是我想要的。我可以删除int输入并将其作为常规输入,但这将允许所有类型的输入,我只需要数字。
我以前有没有用另一种方式来看待这件事

我建议改为使用try/except

另外,通过使用try/except,您可以将循环改为使用
,而使用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 
对空字符串调用
int()

>>> while True:
    try:
        n = int(input('NUMBER: '))
    except ValueError:
        print('Not an integer.')
        break


NUMBER: 5
NUMBER: 12
NUMBER: 64
NUMBER: 
not a number.

这还有一个额外的好处,那就是捕获任何不是int的东西。

简言之,是的,您需要另一种方法。首先,读取某个变量的输入,然后检查它是否为整数(如果不是整数,则决定如何处理),如果它是整数-将continue标志设置为True,如果将空列表设置为False(您仍然需要决定如何处理非空非整数),则程序不会结束,因为用户输入的本身就是一个空字符串。它的结束是因为您没有捕获每当输入非数字内容时发生的
ValueError
。你的
while
条件完全是假的,因为
int()
永远不会返回空字符串,或者根本不会返回任何字符串。OP希望在输入一个空字符串之前一直请求一个数字,因此与你所做的相反。OP希望在用户输入空字符串时停止。我刚刚注意到。感谢@RNarBe使用
int()
测试小心使用“数字”/“非数字”语言。例如,这将坚持认为
'3.2'
不是一个数字。注意,我说了
任何不是INT的东西,但是是的,这是一个很好的观点是的,当然。你的解释是正确的,但节目的内容有误导性。:)用特别的叫喊声编辑,只为你@Two Bitalchest