使用list.append更新for循环中的列表

时间:2017-04-18 15:52:12

标签: python-3.x

程序运行时不会更新变量mult。这段代码有什么问题?运行结果显示循环实际上正如我所希望的那样工作,但是对于列表更新和最终打印

number = 18

for i in range(int(number/2)):
    i += 1
    mults = []
    if number % i == 0:
        mults = mults.append(i)
        print(i)
    elif number % i != 0:
        pass
    elif i == int(number/2):
        print(mults)

使用其他代码我收到错误:AttributeError:' NoneType'对象没有属性'追加'

number = 18
mults = []
for i in range(int(number/2)):
    i += 1
    if number % i == 0:
        mults = mults.append(i)
        print(i)
    elif number % i != 0:
        pass
print(mults)

1 个答案:

答案 0 :(得分:0)

number = 18
mults = []
for i in range(int(number/2)):
    i += 1

    if number % i == 0:
        mults.append(i)
        print(i)
    elif number % i != 0:
        pass
print(mults)

很少有注意事项,将mults移到for循环之外,这样每次循环运行时都不会写它。

当for循环完成时,你不需要那个最后的elif语句,只是print(mults),基本上是最后一个elif语句。

mults.append(i)符合标准,意味着它会自动更改列表mults,您无需重新分配。