我决定不浪费我的夏天,开始学习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]
答案 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.
请注意:
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)