try....except...else
try:
<語句> #運(yùn)行別的代碼
except <名字>:
<語句> #如果在try部份引發(fā)了'name'異常
except <名字>,<數(shù)據(jù)>:
<語句> #如果引發(fā)了'name'異常,獲得附加的數(shù)據(jù)
else:
<語句> #如果沒有異常發(fā)生
try的工作原理是,當(dāng)開始一個try語句后,python就在當(dāng)前程序的上下文中作標(biāo)記,這樣當(dāng)異常出現(xiàn)時就可以回到這里,try子句先執(zhí)行,接下來會發(fā)生什么依賴于執(zhí)行時是否出現(xiàn)異常。
- 如果當(dāng)try后的語句執(zhí)行時發(fā)生異常,python就跳回到try并執(zhí)行第一個匹配該異常的except子句,異常處理完畢,控制流就通過整個try語句(除非在處理異常時又引發(fā)新的異常)。
- 如果在try后的語句里發(fā)生了異常,卻沒有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結(jié)束程序,并打印缺省的出錯信息)。
- 如果在try子句執(zhí)行時沒有發(fā)生異常,python將執(zhí)行else語句后的語句(如果有else的話),然后控制流通過整個try語句。
隨機(jī)數(shù)函數(shù)
choice(seq)從序列的元素中隨機(jī)挑選一個元素,比如random.choice(range(10)),從0到9中隨機(jī)挑選一個整數(shù)。
randrange ([start,] stop [,step])從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個隨機(jī)數(shù),基數(shù)缺省值為1random()隨機(jī)生成下一個實數(shù),它在[0,1)范圍內(nèi)。
seed([x])改變隨機(jī)數(shù)生成器的種子seed。如果你不了解其原理,你不必特別去設(shè)定seed,Python會幫你選擇seed。
shuffle(lst)將序列的所有元素隨機(jī)排序uniform(x, y)隨機(jī)生成下一個實數(shù),它在[x,y]范圍內(nèi)。
時間函數(shù)
ctime(seconds) -> string
將一個時間戳(默認(rèn)為當(dāng)前時間)轉(zhuǎn)換成一個時間字符串
time.ctime()
輸出為:'Sat Mar 28 22:24:24 2009'
gmtime([seconds]) -> (tm_year, tm_mon, tm_day, tm_hour, tm_min,tm_sec, tm_wday, tm_yday, tm_isdst)
將一個時間戳轉(zhuǎn)換成一個UTC時區(qū)(0時區(qū))的struct_time,如果seconds參數(shù)未輸入,則以當(dāng)前時間為轉(zhuǎn)換標(biāo)準(zhǔn)
localtime([seconds]) -> (tm_year,tm_mon,tm_day,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst)
將一個時間戳轉(zhuǎn)換成一個當(dāng)前時區(qū)的struct_time,如果seconds參數(shù)未輸入,則以當(dāng)前時間為轉(zhuǎn)換標(biāo)準(zhǔn)