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