首頁 > 軟體

pythonfor迴圈中range與len區別

2022-06-14 14:03:06

range(x)

range(9) 代表著0、1、2、3、4、5、6、7、8 這九個順序數位的集合。
也就是 range(9) => range(0,9) => [0,1,2,3,4,5,6,7,8]

我們嘗試用 for 列印 range(9):

此外,range還有另外兩種用法,形如切片:

range(start,stop) 以及 range(start,stop,step)

range(start,stop)

range(start,stop) 等同於陣列 [start,start+1,start+2,…,stop]

for i in range(3,8):
print(i)

range(start,stop,step)

range(start,stop,step) 等同於陣列 [start,start+step,start+step*2,…, stop]

for i in range(3,8,2):
    print(i)

len()

len全稱為length,意為長度。
len(x),x可以為字串str,也可以為陣列array,但是不能為 int整型或者float浮點型。

len字串以及陣列:

print("len('hello world')=",len("hello world!"))
print("len([0,1,2,3,4,5,6,7,8,9])=",len([0,1,2,3,4,5,6,7,8,9]))

len不支援 int 或者float

print("len(12)=",len(12))
print("len(3.1415)=",len(3.1415))

range(len())

在python迴圈中常常會見到range(len()),這種組合從裡到外分析可以很清晰的理解:

依次列印出陣列a中內容:

a=[2,2,1,2,3,1]
for i in range(len(a)):
print(a[i])

但是其實我們可以不用range(len())組合,也可以按照要求列印出:

a=[2,2,1,2,3,1]
for i in a:
    print(i)

用range常見錯誤

TypeError: 'list' object cannot be interpreted as an integer

翻譯過來,其意思是 陣列list 不能解釋為整數,就是說 range(x) 的 x 必須是整數,而此時是list,非法。

錯誤範例:

a=[2,2,1,2,3,1]
for i in range(a):
    print(i)

解決辦法:

加上len,嘗試用range(len(x))
len(x)將獲取x的長度,len(x)的值為整數值,為x中內容或者x的長度的值。

到此這篇關於pythonfor迴圈中range與len區別的文章就介紹到這了,更多相關python for迴圈 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com