Python Sequence of Numbers



我决定不浪费我的暑假,开始学习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]

尝试与您第一次尝试的内容保持一致,您可以这样做

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…][0…10].

使用指定范围的能力可能有助于实现这一点:

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

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

如果你想要一个从a到b的数字列表,你应该调用:

range(a, b + 1)

在你的例子中是:

range(1, 11)

range函数已经做了你要做的事情。

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

您可能希望在函数中创建一个列表,使用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)

相关内容

最新更新