range()是Python中的一個(gè)內(nèi)置函數(shù),用于生成一個(gè)整數(shù)序列。它的基本用法是range(start, stop, step),其中start是序列的起始值,stop是序列的終止值(不包含),step是序列中相鄰兩個(gè)值的差值,默認(rèn)為1。range()函數(shù)返回的是一個(gè)可迭代對(duì)象,可以通過(guò)for循環(huán)來(lái)遍歷序列中的每個(gè)值。
range()函數(shù)的用法非常靈活,可以用于多種場(chǎng)景。下面我們來(lái)看一些具體的用法。
## 生成固定范圍的整數(shù)序列
最常見(jiàn)的用法是生成一個(gè)固定范圍的整數(shù)序列。比如,我們要生成一個(gè)從0到9的整數(shù)序列,可以這樣寫:
`python
for i in range(10):
print(i)
這段代碼會(huì)輸出0到9這10個(gè)數(shù)字。
## 指定起始值和步長(zhǎng)
除了默認(rèn)的起始值0和步長(zhǎng)1,我們還可以通過(guò)range()函數(shù)的參數(shù)來(lái)指定起始值和步長(zhǎng)。比如,我們要生成一個(gè)從1到10的整數(shù)序列,步長(zhǎng)為2,可以這樣寫:
`python
for i in range(1, 11, 2):
print(i)
這段代碼會(huì)輸出1、3、5、7、9這5個(gè)數(shù)字。
## 生成倒序序列
有時(shí)候我們需要生成一個(gè)倒序的整數(shù)序列,可以通過(guò)指定步長(zhǎng)為負(fù)數(shù)來(lái)實(shí)現(xiàn)。比如,我們要生成一個(gè)從10到1的整數(shù)序列,可以這樣寫:
`python
for i in range(10, 0, -1):
print(i)
這段代碼會(huì)輸出10、9、8、7、6、5、4、3、2、1這10個(gè)數(shù)字。
## 生成指定長(zhǎng)度的序列
有時(shí)候我們需要生成一個(gè)指定長(zhǎng)度的序列,可以通過(guò)結(jié)合range()函數(shù)和列表生成式來(lái)實(shí)現(xiàn)。比如,我們要生成一個(gè)包含10個(gè)0的列表,可以這樣寫:
`python
lst = [0 for i in range(10)]
print(lst)
這段代碼會(huì)輸出[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]。
## 擴(kuò)展問(wèn)答
### Q1:range()函數(shù)的返回值是什么類型?
A:range()函數(shù)返回的是一個(gè)range對(duì)象,它是一個(gè)可迭代對(duì)象,可以通過(guò)for循環(huán)來(lái)遍歷序列中的每個(gè)值。
### Q2:range()函數(shù)的參數(shù)可以是浮點(diǎn)數(shù)嗎?
A:range()函數(shù)的參數(shù)必須是整數(shù),如果參數(shù)是浮點(diǎn)數(shù)會(huì)拋出TypeError異常。
### Q3:range()函數(shù)的參數(shù)可以是負(fù)數(shù)嗎?
A:range()函數(shù)的參數(shù)可以是負(fù)數(shù),但是需要注意起始值和終止值的大小關(guān)系,如果起始值大于終止值,步長(zhǎng)必須是負(fù)數(shù)。
### Q4:range()函數(shù)的步長(zhǎng)可以是0嗎?
A:range()函數(shù)的步長(zhǎng)不能為0,否則會(huì)拋出ValueError異常。
### Q5:range()函數(shù)的參數(shù)可以是變量嗎?
A:range()函數(shù)的參數(shù)可以是變量,只要變量的值是整數(shù)即可。