CS Circles-Python-list-It';自然运动
以下是一个我难以解决的问题: 编写一个函数CS Circles-Python-list-It';自然运动,python,python-3.x,computer-science,Python,Python 3.x,Computer Science,以下是一个我难以解决的问题: 编写一个函数naturalNumbers,该函数接受一个正整数n作为输入,并返回一个由前n个自然数组成的列表[1,2,…] 以下是我目前掌握的代码: def naturalNumbers(x): x = input() myList = [] for i in range (0, x): return myList = myList + [i] print(myList) 我真的很困惑,什么时候应该为函数设置返回。您工作非
naturalNumbers
,该函数接受一个正整数n
作为输入,并返回一个由前n个自然数组成的列表[1,2,…]
以下是我目前掌握的代码:
def naturalNumbers(x):
x = input()
myList = []
for i in range (0, x):
return myList = myList + [i]
print(myList)
我真的很困惑,什么时候应该为函数设置返回。您工作非常努力
函数range()
返回一个可浇铸到列表的对象,因此您只需
def naturalNumbers(x):
return list(range(1,x + 1)) #didnt notice we are in python 3
0不被视为自然数
def naturalNumbers(n):
n = input()
myList = []
for i in range(1, n + 1):
myList.append(i)
return myList
或使用列表理解:
return
是函数的结尾,它应该在循环之外。您正在混合“主”代码和被要求编写的函数
让您的函数仅用于列表生成函数naturalNumbers
。
并使用不同的主功能
您可以忽略main方法和if\uuuuu name\uuuuuu='\uuuuuu main\uuuuu'
这只是为了以良好的状态正确运行
# 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()
- 根据使用的定义,自然数可以从0或1开始
返回是函数的输出。如果没有返回,函数不会将任何内容“返回”到调用它的位置
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中的默认返回值
def naturalNumbers(n):
myList = []
for i in range(0,n):
myList = myList+[i+1]
return myList
回报永远是你做的最后一件事。返回后,函数退出,该函数中不再有代码运行。为什么要将x
作为函数参数传递,并使用input()
中的返回值覆盖该值?虽然下面的答案很好,但您可以使用简单的列表理解来完成任务:[n代表范围(1,x+1)中的n]
。它看起来比执行“常规”for循环干净得多。@leaf在Python2上我正在执行类型(范围(1,5))
和获取列表,范围对象是Python3的东西吗?没问题。很高兴提供帮助。在Python中,range()
函数是独占的。这意味着它将上升到n
数字,但在那里停止。您需要改为执行range(0,n+1)
。在Python中range()
函数是独占的。这意味着它将上升到n
数字,但在那里停止。您需要改为执行范围(0,n+1)
。
def naturalNumbers(n):
myList = []
for i in range(0,n):
myList = myList+[i+1]
return myList