重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
enumerate(x,y)函數是把元組tuple、字符串str、列表list里面的元素遍歷和索引組合,其用法與range()函數很相似,
成都創新互聯公司專業為企業提供景德鎮網站建設、景德鎮做網站、景德鎮網站設計、景德鎮網站制作等企業網站建設、網頁設計與制作、景德鎮企業網站模板建站服務,十多年景德鎮做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
下面示例enumerate(x,y)用法以及range(x)相似的用法,但是,enumerate(x,y)函數在遍歷excel等時,可以實現與人視覺了解到的認識更好的理解。
enumerate(x,y)中參數y可以省略,省略時,默認從0開始,
如示例一:
list_words=["this","is","blog","of","white","mouse"]
for idx,word in enumerate(list_words):
print(idx,word)
打印結果:
使用range()函數遍歷實現:
list_words=["this","is","blog","of","white","mouse"]
for? i in range(len(list_words)):
print(i,list_words[i])
打印結果:
自定義開始索引號:
示例二:
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)
打印結果:
從上面示例中可以看出,enumerate(x,y)中x是需要遍歷的元組tuple、字符串str、列表list,可以和切片組合使用,
y是自定義開始的索引號,根據自己的需要設置開始索引號。
"""
最小公倍數=兩整數的乘積÷最大公約數
思路:輸入多個整數,依次兩個數求最小公倍數,將前兩個數的最小公倍數和下一個數再次求最小公倍數,求到最后就是結果
"""
def?func(*args):
size?=?len(args)
idx?=?1
i?=?args[0]
while?idx??size:
j?=?args[idx]
#?用輾轉相除法求i,j的最大公約數m
b?=?i?if?i??j?else?j??#?i,j中較小那個值
a?=?i?if?i??j?else?j??#?i,j中較大那個值
r?=?b??#?a除以b的余數
while(r?!=?0):
r?=?a?%?b
if?r?!=?0:
a?=?b
b?=?r
f?=?i*j/b??#?兩個數的最小公倍數
i?=?f
idx?+=?1
return?f
python實現index()功能:
語法
index()方法語法:
str.index(str, beg=0, end=len(string))
參數
str -- 指定檢索的字符串
beg -- 開始索引,默認為0。
end -- 結束索引,默認為字符串的長度。
返回值
如果包含子字符串返回開始的索引值,否則拋出異常。
實例
以下實例展示了index()方法的實例:
#!/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);
以上實例輸出結果如下:
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
在工作中遇到一個項目的陳年老bug,如圖:
bug原因是這里本應該傳idx,結果傳成了id。
但是這里最有意思的地方來了。
從截圖可以看出,這個id并不是入參,也沒有定義過,那他直接用怎么不會報參數未定義的語法錯誤呢?按說函數應該執行不了直接報錯,但是實際上整個方法可以執行不會報錯。
排查import也沒有import id,也沒有定義全局變量。那么這個id變量沒有在任何地方定義,為什么可以直接使用呢,還不會報語法錯誤?
經過查閱資料才發現,id在這里其實 不是一個變量,而是一個函數!
查看官方文檔可以看到:
所以id()本身是python內置的一個函數,但是因為很少用到,所以很多人并不太清楚。
# coding = GBK
a =[1,2,3,4,5]
sum=0
b = len(a)
print("這個數組的長度為:",b)
for i? in a:
sum =sum +i
print("這個數組之和為:",sum)
print("這個數組平均數為",sum/b)
或
import sys
sum = 0
cnt = 0
f = open('1.txt', 'r')
files = f.readline()
while (files ):
sum = sum + float(files .split(",")[0])
cnt = cnt + 1
files = f.readline()
print(sum / cnt)
f.close()
或者。
#!/usr/bin/env pythonimport timeimport numpy as np
dd = np.random.randint(0, 20, size=(2*1000*1000))t_start = time.clock()avg_sum1 =
0.0BlockOffset = 0 ? ? while BlockOffset len(dd):
if dd[BlockOffset + 1] = 10:
avg_sum1 += dd[BlockOffset + 1] * 0.1
else:
avg_sum1 += dd[BlockOffset + 0] * 0.01
BlockOffset += 2print('Avg: ' + str(avg_sum1 / len(dd) / 2)) ? ?print('Exe time: ' +
str(time.clock() - t_start))
擴展資料:
python 實現求和、計數、最大最小值、平均值、中位數、標準偏差、百分比。
import?sys
class?Stats:
def?__init__(self, sequence):
# sequence of numbers we will process
# convert all items to floats for numerical processing
self.sequence?=?[float(item)?for?item?in?sequence]
def?sum(self):
if?len(self.sequence) ?1:
return?None
else:
return?sum(self.sequence)
def?count(self):
return?len(self.sequence)
def?min(self):
if?len(self.sequence) ?1:
return?None
else:
return?min(self.sequence)
def?max(self):
if?len(self.sequence) ?1:
return?None
else:
return?max(self.sequence)
def?avg(self):
if?len(self.sequence) ?1:
return?None
else:
return?sum(self.sequence)?/?len(self.sequence)?
def?median(self):
if?len(self.sequence) ?1:
return?None
else:
self.sequence.sort()
return?self.sequence[len(self.sequence)?//?2]
def?stdev(self):
if?len(self.sequence) ?1:
return?None
else:
avg?=?self.avg()
sdsq?=?sum([(i?-?avg)?**?2?for?i?in?self.sequence])
stdev?=?(sdsq?/?(len(self.sequence)?-?1))?**?.5
return?stdev
def?percentile(self, percentile):
if?len(self.sequence) ?1:
value?=?None
elif?(percentile =?100):
sys.stderr.write('ERROR: percentile must be 100.? you supplied: %s\n'%?percentile)
value?=?None
else:
element_idx?=?int(len(self.sequence)?*?(percentile?/?100.0))
self.sequence.sort()
value?=?self.sequence[element_idx]
return?value
參考資料來源:百度百科-python