Python数字序列

时间:2013-06-18 18:03:56

标签: python list sequence

我决定不浪费我的夏天,开始学习python。我想我会开始学习循环技术,所以我想从一个基本的数字列表开始,也就是说,写一个for循环,它将产生1到10的数字。

这就是我所拥有的:

def generateNumber(num):
    i=0 
for i in range(num):
    return i
return i

并且代码不起作用。我想在这样的列表中得到一个输出:

>>> generateNumber(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

6 个答案:

答案 0 :(得分:3)

尝试与您最初尝试的一致,您可以做这样的事情

def generateNumber(num):
    mylist = []
    for i in range(num+1):
         mylist.append(i)
    return mylist


x = generateNumber(10)

但是,你可以,而只是说,

x = range(10+1)  # gives a generator that will make a list

x = list(range(10+1))  # if you want a real list

一般情况下,您应该根据输入数字10保留此列表,因此它是[0 ... 9]而不是[0 ... 10]。

答案 1 :(得分:3)

通过指定范围来实现此功能可能有所帮助:

def generateNumber(low, high):
    '''returns a list with integers between low and high inclusive
    example: generateNumber(2,10) --> [2,3,4,5,6,7,8,9,10]
    '''
    return range(low, high+1)

这也可以使用内置范围功能完成:

range(10)   --> [0,1,2,3,4,5,6,7,8,9]   #note the "off by one"
range(11)   --> [0,1,2,3,4,5,6,7,8,9,10]
range(2,11) --> [2,3,4,5,6,7,8,9,10]

有关范围的更多信息:http://docs.python.org/2/library/functions.html#range

答案 2 :(得分:1)

range功能已经完成了您要执行的操作。

如果你在Python 2中,range(10)返回0到9,或者在Python 3中它是list(range(10))

答案 3 :(得分:1)

默认情况下,range(n)生成数字列表[0,1,...,n-1]。

如果您想要从a到b的数字列表,请致电:

range(a, b + 1)

在你的情况下是:

range(1, 11)

答案 4 :(得分:1)

生成数字的最简单方法是使用range函数

range()函数有两组参数,如下所示:

range(stop)

> stop: Number of integers (whole numbers) to generate, starting from
> zero. eg. range(3) == [0, 1, 2].

range([start], stop[, step])

> start: Starting number of the sequence.
> stop: Generate numbers up to, but not including this number.
> step: Difference between each number in the sequence.

请注意:

  • 所有参数必须为整数。
  • 所有参数均可为正数或负数。
  • range()(和Python一般)是基于0索引的,这意味着列表索引从0开始,而不是1.例如。访问列表的第一个元素的语法是mylist [0]。因此,range()生成的最后一个整数最多但不包括stop。例如,范围(0,5)生成从0到5但不包括5的整数。

e.g。

打印0到9

[user@linux ~]~ python -c "print list(range(10))" 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[user@linux ~]~ 

打印1到9

[user@linux ~]~ python -c "print list(range(1,10))"
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[user@linux ~]~ 

打印1到10

[user@linux ~]~ python -c "print list(range(1,11))"
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[user@linux ~]~ 

参考: https://www.pythoncentral.io/pythons-range-function-explained/

答案 5 :(得分:0)

您可能希望在函数中创建一个列表,使用yield关键字,或使用内置的list函数。

def generateNumberList(num):
    myList = []
    for i in range(num):
        myList.append(i)
    #Notice that your return the list you've created rather 
    #than each individaul integer
    return myList

print generateNumberList(10)

def generateNumberList2(num):
    for i in range(10):
        yield i

for i in generateNumberList2(10):
    print i

def generateNumberList3(num):
    return list(range(num))

print generateNumberList3(10)