try....except...else
try:
<語句> #運(yùn)行別的代碼
except <名字>:
<語句> #如果在try部份引發(fā)了'name'異常
except <名字>懂鸵,<數(shù)據(jù)>:
<語句> #如果引發(fā)了'name'異常,獲得附加的數(shù)據(jù)
else:
<語句> #如果沒有異常發(fā)生
try的工作原理是行疏,當(dāng)開始一個(gè)try語句后匆光,python就在當(dāng)前程序的上下文中作標(biāo)記,這樣當(dāng)異常出現(xiàn)時(shí)就可以回到這里酿联,try子句先執(zhí)行终息,接下來會(huì)發(fā)生什么依賴于執(zhí)行時(shí)是否出現(xiàn)異常。
- 如果當(dāng)try后的語句執(zhí)行時(shí)發(fā)生異常贞让,python就跳回到try并執(zhí)行第一個(gè)匹配該異常的except子句周崭,異常處理完畢,控制流就通過整個(gè)try語句(除非在處理異常時(shí)又引發(fā)新的異常)喳张。
- 如果在try后的語句里發(fā)生了異常续镇,卻沒有匹配的except子句,異常將被遞交到上層的try销部,或者到程序的最上層(這樣將結(jié)束程序摸航,并打印缺省的出錯(cuò)信息)。
- 如果在try子句執(zhí)行時(shí)沒有發(fā)生異常舅桩,python將執(zhí)行else語句后的語句(如果有else的話)酱虎,然后控制流通過整個(gè)try語句。
隨機(jī)數(shù)函數(shù)
choice(seq)從序列的元素中隨機(jī)挑選一個(gè)元素擂涛,比如random.choice(range(10))读串,從0到9中隨機(jī)挑選一個(gè)整數(shù)。
randrange ([start,] stop [,step])從指定范圍內(nèi)歼指,按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù)爹土,基數(shù)缺省值為1random()隨機(jī)生成下一個(gè)實(shí)數(shù),它在[0,1)范圍內(nèi)踩身。
seed([x])改變隨機(jī)數(shù)生成器的種子seed胀茵。如果你不了解其原理,你不必特別去設(shè)定seed挟阻,Python會(huì)幫你選擇seed琼娘。
shuffle(lst)將序列的所有元素隨機(jī)排序uniform(x, y)隨機(jī)生成下一個(gè)實(shí)數(shù)峭弟,它在[x,y]范圍內(nèi)。
時(shí)間函數(shù)
ctime(seconds) -> string
將一個(gè)時(shí)間戳(默認(rèn)為當(dāng)前時(shí)間)轉(zhuǎn)換成一個(gè)時(shí)間字符串
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)
將一個(gè)時(shí)間戳轉(zhuǎn)換成一個(gè)UTC時(shí)區(qū)(0時(shí)區(qū))的struct_time脱拼,如果seconds參數(shù)未輸入瞒瘸,則以當(dāng)前時(shí)間為轉(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)
將一個(gè)時(shí)間戳轉(zhuǎn)換成一個(gè)當(dāng)前時(shí)區(qū)的struct_time,如果seconds參數(shù)未輸入熄浓,則以當(dāng)前時(shí)間為轉(zhuǎn)換標(biāo)準(zhǔn)