【发布时间】:2022-11-23 07:59:45
【问题描述】:
我需要从用户那里获取整数输入并将它们添加到一个集合中。整数的数量未知。当用户输入“完成”时,输入过程将结束。
这是我的代码:
s = set()
print('Please type the number, when you are done please type "Done":')
while True:
try:
a = int(input())
s.add(a)
except:
if a == "Done":
break
else:
print('Integer only, please re-type:')
continue
print(s)
但它没有按预期工作。
我的想法很简单。如果用户键入一个整数那么没关系,只需添加到集合s。如果他们输入一个字符串(int(input() 是错误的),那么它将下降到 except,如果字符串是“完成”,则打破 while True 循环,如果不是,则要求用户重新输入并继续循环。
如果我先输入字符串然后正常输入,则会出现以下错误:
我尝试在开始时使用一个简单的 if-else 语句,但它会在 int(input()) 处引起回溯。
【问题讨论】:
-
a不是字符串,所以它永远不会等于“完成” -
首先将输入保存在变量
a = input()中,然后尝试将其转换为int并将其添加到集合s.add(int(a))中。如果失败,a将保留输入的值,您可以将其与'DONE'进行比较 -
@Jacques Gaudin 谢谢。下面有一个人的答案和你的想法一样。
标签: python user-input try-except