如果我要求用户输入数字,只要没有输入空字符串就会继续,如果输入空字符串,则程序结束。 我目前的代码是:
n=0
while n != "":
n = int(input("Enter a number: "))
但显然这不是我想要的。我可以删除int输入并将其保留为常规输入,但这将允许所有类型的输入,我只想要数字。 我之前对此有何看法?
答案 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