消除列表中1到100之间的数字

时间:2019-06-08 03:31:08

标签: python

我编写了一个代码,该代码应该输入用户的数字并报告其输入中缺少的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的数字。

1 个答案:

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