星回8 发表于 2021-5-27 16:03:41

list.append问题求助

def decompf(num):
    for i in range(2, num + 1):

      if num % i == 0:
            j = int(num / i)
            for m in range(2, j):
                list.append(m)
            print(list)
            if j != 1:
                print(i)
                decompf(j)
            else:
                print(i)


def use():
    num = int(input("请输入数字"))
    list = []
    decompf(num)


use()

问一下大家,我就想把m写入list里,一直报类型错误,不是append添加什么都可以嘛,求助求助

wp231957 发表于 2021-5-27 16:03:42

def decompf(num,lst):
    for i in range(2, num + 1):

      if num % i == 0:
            j = int(num / i)
            for m in range(2, j):
                lst.append(m)
            print(lst)
            if j != 1:
                print(i)
                decompf(j,lst)
            else:
                print(i)


def use():
    num = int(input("请输入数字"))
    list1 = []# 尽量避开关键字
    decompf(num,list1)


use()

这是一个问题代码不知道你要干嘛所以没改

qq1151985918 发表于 2021-5-27 16:12:16

原因是 list 是局部变量而非全局变量

另外应该注意,list 是关键字类型,应尽量避免用 list 作为变量名

def decompf(num):
    for i in range(2, num + 1):

      if num % i == 0:
            j = int(num / i)
            for m in range(2, j):
                list.append(m)
            print(list)
            if j != 1:
                print(i)
                decompf(j)
            else:
                print(i)


if __name__ == "__main__":
    num = int(input("请输入数字"))
    list = []
    decompf(num)

星回8 发表于 2021-5-27 16:23:11

wp231957 发表于 2021-5-27 16:03
这是一个问题代码不知道你要干嘛所以没改

非常感谢{:5_109:}
页: [1]
查看完整版本: list.append问题求助