我的代码在插入单词时不会停留在9-10行,我希望仅在输入数字后才能继续
from cs50 import get_int
numbers = []
while True:
number = get_int("number: ")
if not number: # here #
break # here #
if number not in numbers:
numbers.append(number)
print()
for number in numbers:
print(number)
如果输入的不是数字,则需要停止
答案 0 :(得分:0)
您可以在while True
循环中将输入字符串解析为数字或非数字,如果不是数字,请中断循环,否则继续询问。
numbers = []
while True:
#Ask for input
s = input("number: ")
number = 0
#Try to parse the string as a number, if you cannot, break the loop
try:
number = int(s)
except:
break
#If you can parse the string as a number, add it to the list
numbers.append(number)
print(numbers)
样本输出为
number: 123
number: 456
number: 789
number: abc
[123, 456, 789]
答案 1 :(得分:0)
在Python 3中,您可以使用以下命令确保number
是一个整数(整数):
isinstance(number, int)
如果允许使用整数或浮点数(带小数的数字),则可以使用以下内容:
isinstance(number, (int, float))
我强烈建议在this answer中阅读有关此主题的更多信息。
答案 2 :(得分:0)
您无需定义新功能即可。
numbers = []
while True:
number = input("number: ")
try:
number = int(number)
if number not in numbers:
numbers.append(number)
except:
break
print (numbers)
答案 3 :(得分:0)
try:
if number == int(number):
if number not in numbers:
numbers.append(number)
except:
#invalid input will throw you into this block
break