我创建了一个程序,它读取一个数字序列,确定有多少个不同的数字(我们计算一次重复次数),并将结果写入标准输出。我的第一个代码:
f=int(input("String of numbers: "))
l=[]
for x in range(f):
string_numbers = int(input(f'Enter {x+1} string of numbers: '))
l.append(string_numbers)
mylist = list(dict.fromkeys(l))
print(len(mylist))
我想考虑用户输入的字符串是否比声明的太短或太长。我想让用户在一行中输入所有内容。当我输入不正确的字符串编号时,我会得到重复的“不正确的字符串长度不正确的字符串长度”
f=int(input("String of numbers: "))
my_list = input('Enter numbers in the string, separated by spaces: ').split()
list_of_integers=[]
l=len(str(list_of_integers))
for i in my_list:
list_of_integers.append((i))
mylist = list(dict.fromkeys(list_of_integers))
for i in range(f):
if i < l:
print("incorrect string length", end='')
elif i > l:
print("incorrect string length", end='')
else:
2条答案
按热度按时间wkftcu5l1#
看起来你混淆了不同的变量--
f
是你想要的长度,l
只是数字2,而你比较这两者的方式与用户输入的实际输入无关,即my_list
。使用表明其含义的变量名称可能更容易使其保持清晰:
在上面的代码中,
num_count
是您希望他们输入多少个(非唯一的)数字的计数,num_list
是实际的列表。要确定列表是否是预期的长度,请比较num_count
和len(num_list)
。请注意,由于您所做的只是查找唯一值,因此没有必要将
num_list
中的字符串转换为int
(无论您是否像我在这里所做的那样使用set
)。lmvvr0a82#
你最好使用另一个最终有
while
循环的函数,这样可以确保当用户输入时,如果有任何错误,你可以解析它,检查并最终确保再次提示用户。例如:
这并不是一个实际的例子,但是根据你所拥有的,你会得到一个想法,你想做一个
while
循环,直到你的输入匹配。