我必须从一个只使用for循环的列表中找到一个缺少的数字,一旦看到代码,我想你会理解的

2024-04-23 16:58:47 发布

您现在位置:Python中文网/ 问答频道 /正文

def missing_num(lst):
  lst=[1,2,3,4,5,6,7,8,9,10]
  for n in range(1,11):
    if n not in lst:
      print(n)
    else:
      print("Nothing is missing")

missing_num(lst)

#如果你愿意回答,那将对我大有帮助

它显示名称错误


Tags: in名称forifisdef错误not
2条回答

1.将list传递给函数时,必须在该特定函数之外定义它

2.如果列表的size为10,则代码将在检查每个索引时打印nothing is missing10次,甚至在到达列表末尾之前

3.仅在检查列表中的所有元素后才打印nothing is missing,对于这些元素,您可以使用变量计数缺少的数字

您可以尝试以下方法:

def missing_num(lst):
  flag=0
  for n in range(1,11):
    if n not in lst:
      print(n," is missing")
      flag+=1                            #flag to count no of missing numbers 
    else:
      continue
  if(flag==0):                          # when flag is 0 print "no missing numbers"
      print("Nothing is missing")

lst=[1,2,3,4,5,6,7,8,9,10]
missing_num(lst)
  1. 在函数外部定义列表(lst
  2. 使用for/else语句,如图here所示,获取for ends后仅缺少的内容的结果
    如果找不到break并且for到达其自然终点,则代码的else部分将运行

完整代码

lst=[1,2,3,4,5,6,7,9,10]
def missing_num(lst):
    for n in range(1,11): 
        if n not in lst: 
            print(n)
            break
    else: 
        print("Nothing is missing")

missing_num(lst)

如果需要显示所有缺失的数字,有多种方法。
我会选择:

lst=[1,2,3,4,5,6,7,10]
def missing_num(lst):
    l = []
    for n in range(1,11): 
        if n not in lst:
            print(n)
            l.append(n)
    if not l: # if list is empty
        print("Nothing is missing")
missing_num(lst)

相关问题 更多 >