这是一个我无法解决的问题:
编写一个函数naturalNumbers
,它取一个正整数n
作为输入,并返回一个由前n个自然数组成的列表[1, 2, ...]
。
这是我到目前为止的代码:
def naturalNumbers(x):
x = input()
myList = []
for i in range (0, x):
return myList = myList + [i]
print(myList)
我真的很困惑何时将return
用于函数。
答案 0 :(得分:1)
range()
返回一个可转换为列表的对象,因此您需要做的只是
def naturalNumbers(x):
return list(range(1,x + 1)) #didnt notice we are in python 3
0不被视为自然数
答案 1 :(得分:0)
def naturalNumbers(n):
n = input()
myList = []
for i in range(1, n + 1):
myList.append(i)
return myList
或使用列表理解:
def naturalNumbers(n):
n = input()
myList = [i for i in range(1, n + 1)]
return myList
return
是函数的结尾,它应该在循环之外。
答案 2 :(得分:0)
你正在混合你的主要'代码和要求您编写的函数。
让您的函数仅用于列表生成函数naturalNumbers
。
并使用不同的主要功能。
你可以忽略主要方法和if __name__ = '__main__'
这只是为了以良好的形式正确运行。
# this method outputs a list from 0 to x
def naturalNumbers (x):
l = list[]
for i in range(0, x+1):
list.append(i)
return l
def main():
x = input()
# should check if x is an integer (defensive programming)
print (naturalNumbers(x))
if __name__ = "__main__"
main()
答案 3 :(得分:0)
返回是函数的输出。如果没有返回,函数就不会“回馈”任何被调用的地方。
def naturalNumbers(n):
return [x for x in range(0,n)]
print(naturalNumbers(5))
上面的print语句使用自然数的输出,并将打印[0,1,2,3,4]。
假设我们删除了返回并将其分配给一个值。
def naturalNumbers(n):
numbers = [x for x in range(0,n)]
#assignment rather than return, we could do other operations.
print(naturalNumbers(5))
#returns None
上面的print语句打印'None',因为这是Python中的默认返回值
答案 4 :(得分:0)
尝试这个简单的方法:
def naturalNumbers(n):
myList = []
for i in range(0,n):
myList = myList+[i+1]
return myList