range函數
range()
是 Python 中一個非常實用的內建函數,通常用來生成一個整數序列,這個序列可以用於迴圈中遍歷數據。range()
在 Python 2.x 和 Python 3.x 中有些不同,下面將分別介紹。
Python 2.x 中的 range()
在 Python 2.x 中,range()
函數返回的是一個列表,該列表包含了一個從 start
到 stop
(不包括 stop
)的等差數列,步長由 step
決定。默認情況下,start
為 0,step
為 1。
語法:
range(start, stop[, step])
參數說明:
start
:序列的起始值,默認為 0。stop
:序列的終止值(不包含此值)。step
:序列中的步長,默認為 1。
範例:
print(range(10)) # 從 0 開始到 9,輸出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(range(1, 11)) # 從 1 開始到 10,輸出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(range(0, 30, 5)) # 步長為 5,輸出: [0, 5, 10, 15, 20, 25] print(range(0, 10, 3)) # 步長為 3,輸出: [0, 3, 6, 9] print(range(0, -10, -1))# 負數步長,輸出: [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] print(range(0)) # 空範圍,輸出: [] print(range(1, 0)) # 起點大於終點,輸出: []
Python 3.x 中的 range()
在 Python 3.x 中,range()
函數的行為有了一些改變。它不再返回一個列表,而是返回一個可迭代對象。這意味著當你調用 range()
時,它不會立即生成整個序列,而是在需要時才會生成每個值,這使得 range()
更加高效,特別是在處理大範圍的數據時。
語法:
range(start, stop[, step])
範例:
print(list(range(10))) # 在 Python 3.x 中,需要將 range() 轉換為列表才能看到結果 print(list(range(1, 11))) print(list(range(0, 30, 5))) print(list(range(0, 10, 3))) print(list(range(0, -10, -1))) print(list(range(0))) print(list(range(1, 0)))
注意:在 Python 3.x 中,range()
返回的並不是列表,所以如果你直接打印 range()
的結果,會看到的是一個 range
對象,而不是列表。要看到具體的值,可以用 list()
將 range
轉換為列表。
range()
在 for
迴圈中的使用
range()
函數通常用於 for
迴圈中,用來遍歷一個特定範圍的數字。例如:
x = 'runoob' for i in range(len(x)): print(x[i])
這段代碼會依次打印出 runoob
的每個字符:
r u n o o b
這裡的 range(len(x))
生成了一個從 0 到 len(x)-1
的序列,並用於遍歷字符串 x
。
range()
的三種用法
range()
有三種主要用法,總結如下:
range(stop)
:- 生成一個從 0 到
stop-1
的序列。 - 範例:
range(5)
生成[0, 1, 2, 3, 4]
。
- 生成一個從 0 到
range(start, stop)
:- 生成一個從
start
到stop-1
的序列。 - 範例:
range(1, 5)
生成[1, 2, 3, 4]
。
- 生成一個從
range(start, stop, step)
:- 生成一個從
start
到stop-1
,步長為step
的序列。 - 範例:
range(0, 10, 2)
生成[0, 2, 4, 6, 8]
。
- 生成一個從