首页 > 解决方案 > 如何将定义函数的输出转换为列表?

问题描述

所以我有下面的代码,我的目标是列出猫 = 10,100,1,0,21 和 321 的情况,所以我想从简单的开始做猫 = 10。输出总是一个数字的平方,所以当cats = 10时,输出应打印在列表“[1,4,9]”中,当cats = 21时,输出应为“[1,4,9,16]”等,所以当cats = n时列表中不应有大于 n 的数字。实际输出例如 1 4 9 但打印在单独的行上,但如前所述,我希望它们在列表中。我也尝试了数组,但不幸的是没有运气。

CATS = 10
def test(cats=CATS):
    x=1
    n=1
    while cats>=n:
        print(n)
        x+=1
        n+=1
        n=x**2
test()
# [x*x for x in range(1,4)] is unfortunately not an option

标签: pythonarrayslistfunctionwhile-loop

解决方案


此代码将有助于您解释的功能:

def print_squares(num):
  print([i*i for i in range(1, num) if i*i < num])

numbers = [10,100,1,0,21, 321]

print_squares(numbers[4])
print_squares(numbers[0])

输出:

>>> numbers = [10,100,1,0,21, 321]
>>> print_squares(numbers[4])
[1, 4, 9, 16]
>>> print_squares(numbers[0])
[1, 4, 9]
>>>

推荐阅读