在工作中遇到一個(gè)項(xiàng)目的陳年老bug,如圖:
成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
bug原因是這里本應(yīng)該傳idx,結(jié)果傳成了id。
但是這里最有意思的地方來了。
從截圖可以看出,這個(gè)id并不是入?yún)?,也沒有定義過,那他直接用怎么不會報(bào)參數(shù)未定義的語法錯誤呢?按說函數(shù)應(yīng)該執(zhí)行不了直接報(bào)錯,但是實(shí)際上整個(gè)方法可以執(zhí)行不會報(bào)錯。
排查import也沒有import id,也沒有定義全局變量。那么這個(gè)id變量沒有在任何地方定義,為什么可以直接使用呢,還不會報(bào)語法錯誤?
經(jīng)過查閱資料才發(fā)現(xiàn),id在這里其實(shí) 不是一個(gè)變量,而是一個(gè)函數(shù)!
查看官方文檔可以看到:
所以id()本身是python內(nèi)置的一個(gè)函數(shù),但是因?yàn)楹苌儆玫剑院芏嗳瞬⒉惶宄?/p>
python實(shí)現(xiàn)index()功能:
語法
index()方法語法:
str.index(str, beg=0, end=len(string))
參數(shù)
str -- 指定檢索的字符串
beg -- 開始索引,默認(rèn)為0。
end -- 結(jié)束索引,默認(rèn)為字符串的長度。
返回值
如果包含子字符串返回開始的索引值,否則拋出異常。
實(shí)例
以下實(shí)例展示了index()方法的實(shí)例:
#!/usr/bin/python
str1 = "this is string example....wow!!!";
str2 = "exam";
print str1.index(str2);
print str1.index(str2, 10);
print str1.index(str2, 40);
以上實(shí)例輸出結(jié)果如下:
15
15
Traceback (most recent call last):
File "test.py", line 8, in
print str1.index(str2, 40);
ValueError: substring not found
shell returned 1
enumerate(x,y)函數(shù)是把元組tuple、字符串str、列表list里面的元素遍歷和索引組合,其用法與range()函數(shù)很相似,
下面示例enumerate(x,y)用法以及range(x)相似的用法,但是,enumerate(x,y)函數(shù)在遍歷excel等時(shí),可以實(shí)現(xiàn)與人視覺了解到的認(rèn)識更好的理解。
enumerate(x,y)中參數(shù)y可以省略,省略時(shí),默認(rèn)從0開始,
如示例一:
list_words=["this","is","blog","of","white","mouse"]
for idx,word in enumerate(list_words):
print(idx,word)
打印結(jié)果:
使用range()函數(shù)遍歷實(shí)現(xiàn):
list_words=["this","is","blog","of","white","mouse"]
for? i in range(len(list_words)):
print(i,list_words[i])
打印結(jié)果:
自定義開始索引號:
示例二:
list_words=["this","is","blog","of","white","mouse"]
for idx,word in enumerate(list_words[1:],2):#也可以寫成for idx,word in enumerate(list_words,start=2):
print(idx,word)
打印結(jié)果:
從上面示例中可以看出,enumerate(x,y)中x是需要遍歷的元組tuple、字符串str、列表list,可以和切片組合使用,
y是自定義開始的索引號,根據(jù)自己的需要設(shè)置開始索引號。
文章名稱:包含pythonidx函數(shù)的詞條
轉(zhuǎn)載源于:http://jinyejixie.com/article40/dosdieo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、全網(wǎng)營銷推廣、網(wǎng)站設(shè)計(jì)公司、動態(tài)網(wǎng)站、外貿(mào)建站、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)