如果输入的不是数字,则需要停止

时间:2019-04-27 13:53:50

标签: python python-3.6

我的代码在插入单词时不会停留在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)

如果输入的不是数字,则需要停止

4 个答案:

答案 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