为什么由函数创建的列表不是iterab

2024-05-15 22:01:59 发布

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

我是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)


Tags: theintegers函数number列表def数字整数
1条回答
网友
1楼 · 发布于 2024-05-15 22:01:59

正如人们所评论的,你的缩进是不正确的,但除此之外,你实际上并没有调用这个函数

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

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

以下是我的程序版本:

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)

相关问题 更多 >