我编写了一个代码,该代码应该输入用户的数字并报告其输入中缺少的1到100之间的数字。
我的代码在下面不起作用:
num_list = []
number = input('Enter numbers (remember a space): ')
number.split()
num_list.append(number)
for i in range(1, 101):
if i in num_list:
continue
else:
print(i, end =', ')
代码输出从1到100的所有数字,但不排除数字。
注意:该代码必须排除所有输入的数字,而不仅仅是一个数字。
例如如果用户输入了1 2 3 4,则输出应从5开始,并列出直到100的数字。
答案 0 :(得分:2)
有三个问题
1)您没有保存从拆分方法返回的列表
result = number.split()
2)使用extend
代替append
num_list.extend(result)
3)默认情况下,input
将所有内容读取为字符串,您需要在拆分后将它们从int
转换为string
,以下是使用List Comprehensions
result = [int(x) for x in number.split()]
追加:只会将一个项目添加到列表的末尾
因此,在您添加用户输入后,您的列表将为
num_list.append(number) #[[1,2,3,4,5]] so use extend
扩展:通过附加可迭代项中的所有项来扩展列表。
num_list.append(number) #[1,2,3,4,5]
注意::如果num_list
为空,则可以直接使用result
方法中的split
,而不需要extend