我正在尝试在Python中创建一个函数。此函数应该能够创建小于或等于提供的数字的整数列表。我创建了一个空列表,一个名为y
的变量和一个while循环。在此while循环中,只要y <= x
,后续等式的结果将附加到空列表中,y
将增加1
。但是,当我调用此函数时,我得到一个只包含一个元素的列表。我该如何解决这个问题?
def fff(x):
numbers = []
y = 2
while(y <= x):
x = x - (x - y)
numbers.append(x)
y += 1
return numbers
>>> fff(10)
[2]
答案 0 :(得分:4)
该功能已经存在,或多或少。
Python 2
def fff(x):
return range(1,x+1)
Python 3
def fff(x):
return list(range(1,x+1))
答案 1 :(得分:2)
如果您查看此行x = x - (x - y)
并考虑您的输入,您将看到问题所在。如果x最初等于10,那么x - (x - y)等于2,y将等于3,因此会突破你的循环。
答案 2 :(得分:0)
如果你试图模仿范围功能,那么你就是这样做的:
def fff(x):
numbers = []
y = 1
while(y <= x):
numbers.append(y)
y += 1
return numbers