在python 3中打印不同的数字

时间:2018-04-06 16:02:20

标签: python python-3.x

我有以下代码来打印(不同的数字),但是我试图在进程之前检查输入,应该是只有一个空格的十位数字。 我试着尝试但仍然无法弄清楚:

def main():
    list1 = input("Enter ten numbers: ").split()
    set1 = set(list1)
    print(set1)
    list2 = list(set1)
    string = string.join(list2)
    print("The distinct numbers are: " + str(string))

main()

2 个答案:

答案 0 :(得分:0)

您的意思是检查是否输入了10个号码?

import re

def check_input(input_string):
     compare_to = '\s'.join(10*['\d+'])
     if re.match(compare_to[:-1], input_string):
           return True
     return False

这是regular expression,它检查输入字符串是否等于指定的输入格式。这个具体检查是否添加了10组至少1个[\d+],其中\s之间有空格。

答案 1 :(得分:0)

使用内置字符串的isnumeric()方法的简单版本。另外,我在input周围放了一个循环,以便用户可以在错误数据的情况下轻松重试:

def main():
    while(True):
        numbers = input("Enter ten space-separated numbers: ").split()
        if len(numbers) != 10 or not all(n.isnumeric() for n in numbers):
            print("Wrong input, please retry")
            continue
        numbers = ' '.join(set(numbers))
        print("The distinct numbers are:", numbers)
        break # or return numbers if you need the data

main()