为什么函数创建的列表不可迭代

时间:2018-05-12 05:19:34

标签: python python-3.x

我是python的新手并且不太了解。我创建了一个带有数字的函数,并将所有导致该数字的整数(包括该数字)放入列表中。或者我想,事实证明我实际上不能将创建的列表用作列表。关于如何使其可用的任何想法?

def break_up(x):
"""breaks up the the integers adding up to a number x, starting at 1. Works for any positive number or 0"""
y = 1
b = 1
a = []
while y <= x:
    n = x - x + b
    b = b + 1
    y = y + 1
    a.append(n)
print(a)

1 个答案:

答案 0 :(得分:0)

正如人们评论的那样,你的缩进是不正确的,但另外你实际上并没有调用这个函数。

该函数需要返回一个对象。在函数中创建的对象保留在那里并且在外部不可见(除非它是global) - 这称为封装,并且是一种重要的编程技术,可以在任何地方使用函数。 / p>

请注意,即使多行注释也必须缩进(我已将其设为多行)

以下是我的程序版本:

def break_up(x):
    """
    breaks up the the integers adding up to a number x, starting at 1.
    Works for any positive number or 0
    """
    y = 1
    b = 1
    a = []
    while y <= x:
        n = x - x + b
        b = b + 1
        y = y + 1
        a.append(n)

    return a    # <<<< added

# At this point, the name 'a' is not visible

thing = break_up(5)

print(thing)

# or

print(break_up(5))

只是为了好玩,试试这个:

$ python3 -i gash.py
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
>>> help(break_up)