range() 是 Python 內(nèi)置的一個函數(shù),用于生成一個整數(shù)序列。具體來說,它的定義如下:
range([start], [stop], [step])
start、stop、step 分別表示序列的起始值、終止值和步長。start 和 step 是可選參數(shù),如果不指定則默認為 0 和 1。
一、range()傳遞不同的參數(shù)
1、傳遞一個參數(shù)時
當只傳入一個參數(shù)時,表示生成從 0 開始、小于該參數(shù)的整數(shù)序列。例如:
>>> range(5)
#range(0, 5)
這個例子中,range(5) 表示生成一個從 0 開始、小于 5 的整數(shù)序列。需要注意的是,實際上 range() 函數(shù)返回的是一個 range 類型的對象,并不是一個列表,但在大多數(shù)情況下可以像列表一樣使用。
2、傳遞兩個參數(shù)時
當傳入兩個參數(shù)時,表示生成從 start 開始、小于 stop 的整數(shù)序列。例如:
>>> range(2, 5)
range(2, 5)
這個例子中,range(2, 5) 表示生成一個從 2 開始、小于 5 的整數(shù)序列。
3、傳遞三個參數(shù)時
當傳入三個參數(shù)時,表示生成從 start 開始、每次增加 step、小于 stop 的整數(shù)序列。例如:
>>> range(0, 10, 2)
range(0, 10, 2)
range(0, 10, 2) 表示生成一個從 0 開始、每次增加 2、小于 10 的整數(shù)序列。
需要注意的是,當 step 為正數(shù)時,stop 必須大于 start,否則將無法生成任何數(shù)字。例如:
>>> range(5, 2)
range(5, 2)
這個例子中,由于 start=5、stop=2、step=1,因此無法生成任何數(shù)字。
另外,當 step 為負數(shù)時,start 必須大于 stop 才能生成序列。例如:
>>> range(5, 2, -1)
range(5, 2, -1)
于 start=5、stop=2、step=-1,因此生成的序列為 5、4、3。
在實際應用中,range() 函數(shù)還有許多常見用法。接下來,將詳細介紹 range() 函數(shù)的各項用法,包括:
- 使用 range() 構建 for 循環(huán)
- 遍歷列表時使用 range(len()) 的用法
- 利用 range() 生成固定長度的等差數(shù)列
- 利用 range() 生成逆序的整數(shù)序列
二、使用 range() 構建 for 循環(huán)
range() 函數(shù)最常見的用法之一是用于構建 for 循環(huán)的迭代器。例如,以下代碼演示了如何使用 range() 函數(shù)構建一個從 0 到 4 的循環(huán):
for i in range(5):
print(i)
輸出結果:
0
1
2
3
4
range(5) 返回一個包含 5 個元素的整數(shù)序列,然后在 for 循環(huán)中使用每個元素對變量 i 進行賦值并輸出。
需要注意的是,當使用 range() 函數(shù)時,循環(huán)變量 i 的取值范圍為 0 到 n-1。因此,如果需要從 1 開始循環(huán),可以通過加一的方式實現(xiàn):
for i in range(1, 6):
print(i)
1
2
3
4
5
三、遍歷列表時使用 range(len()) 的用法
在處理列表時,有時需要同時遍歷列表的索引和數(shù)值。這時可以利用 range(len()) 函數(shù)來生成與列表長度相同的整數(shù)序列,并在循環(huán)中使用該序列的元素作為列表的索引。例如,以下代碼演示了如何遍歷一個列表并輸出其索引和數(shù)值:
fruit_list = ['apple', 'banana', 'orange']
for i in range(len(fruit_list)):
print('Index:', i, 'Value:', fruit_list[i])
輸出結果:
Index: 0 Value: apple
Index: 1 Value: banana
Index: 2 Value: orange
這個例子中,range(len(fruit_list)) 返回包含 3 個元素的整數(shù)序列 [0, 1, 2],循環(huán)時使用該序列的元素 i 作為 fruit_list 的索引,并通過 fruit_list[i] 訪問列表中的元素。
3.1 直接使用for循環(huán)遍歷列表
需要注意的是,雖然可以通過遍歷列表的索引和數(shù)值來處理列表,但在 Python 中通常更推薦使用迭代器的方式。例如,可以使用 for 循環(huán)來直接遍歷列表的每個元素:
for fruit in fruit_list:
print(fruit)
輸出結果如下
apple
banana
orange
四、利用 range() 生成固定長度的等差數(shù)列
除了在 for 循環(huán)中使用 range() 函數(shù)外,還可以利用它來生成固定長度的等差數(shù)列。具體來說,在 Python 中可以使用列表解析式結合 range() 函數(shù)來實現(xiàn)這一功能。以下代碼演示了如何生成一個長度為 5、以 2 為首項、公差為 3 的等差數(shù)列:
a = [2 + 3 * i for i in range(5)]
print(a)
輸出結果:
[2, 5, 8, 11, 14]
range(5) 返回一個包含 5 個元素的整數(shù)序列 [0, 1, 2, 3, 4],然后使用列表解析式對每個元素 i 進行計算,并將結果存儲到列表 a 中。
需要注意的是,由于 range() 函數(shù)默認從 0 開始,因此在計算時需要加上首項。如果希望使用其他值作為首項,則可以傳入 start 參數(shù):
a = [10 + 3 * i for i in range(5)]
print(a)
輸出結果:
[10, 13, 16, 19, 22]
五、利用 range() 生成逆序的整數(shù)序列
除了正序的整數(shù)序列外,有時還需要生成倒序(逆序)的整數(shù)序列。在 Python 中,可以使用 step=-1 的方式來實現(xiàn)這一功能。例如,以下代碼演示了如何生成一個從 9 到 0 的逆序序列:
for i in range(9, -1, -1):
print(i)
9
8
7
6
5
4
3
2
1
0
這個例子中,range(9, -1, -1) 返回包含 10 個元素的整數(shù)序列 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0],然后在 for 循環(huán)中遍歷該序列并輸出每個元素。文章來源:http://www.zghlxwxcb.cn/news/detail-469096.html
需要注意的是,在生成逆序序列時,stop 參數(shù)必須比 start 參數(shù)小,并且 step 必須為負數(shù)。如果不滿足條件,則 range() 函數(shù)將返回空序列。文章來源地址http://www.zghlxwxcb.cn/news/detail-469096.html
到了這里,關于python中的range函數(shù)|python中的range函數(shù)|range()函數(shù)詳解|Python中range(len())的用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!