CS Circles - Python - 列表 - 这是自然运动

时间:2017-02-16 03:16:50

标签: 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)

我真的很困惑何时将return用于函数。

5 个答案:

答案 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()
  • 也取决于使用的定义,自然数可以从0或1开始

答案 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