python異常忽冻、模塊和包

異常

1.什么是異常

運(yùn)行程序的時候程序報錯,又叫程序出現(xiàn)異常
當(dāng)執(zhí)行程序的時候,如果出現(xiàn)異常,出現(xiàn)異常的線程會直接崩潰,不再執(zhí)行線程中后面其他的代碼

2.異常捕獲

  • 1)語法一:
    try - except能夠捕獲任何異常
    try:
    代碼塊1
    except:
    代碼塊2

    • 說明:
      try/except - 關(guān)鍵字,固定寫法
      代碼塊1 - 和try保持一個縮進(jìn)的一條或者多條語句
      (需要捕獲異常的代碼塊)
      代碼塊2 - 和except保持一個縮進(jìn)的一條或者多條語句
      (異常發(fā)生后會執(zhí)行的代碼)

    • 執(zhí)行過程:
      先執(zhí)行代碼塊1,如果在執(zhí)行代碼塊1的時候出現(xiàn)了異常,程序不崩潰,直接執(zhí)行代碼塊2,然后再執(zhí)行其它語句淘正;如果在執(zhí)行代碼塊1的時候沒有出現(xiàn)異常,代碼塊2不會執(zhí)行,直接執(zhí)行其它語句

try:
    age = int('a')
except:
    print('出現(xiàn)異常,年齡只能是數(shù)字')
print('最后')
  • 2)語法二:
    try - except 異常類型: 捕獲指定異常
    try:
    代碼塊1
    except 異常類型:
    代碼塊2

    • 執(zhí)行過程:
      先執(zhí)行代碼塊1,如果在執(zhí)行代碼塊1的時候出現(xiàn)了異常,檢查異常類型和except后面的異常類型是否一致,
      如果一致程序不崩潰,直接執(zhí)行代碼塊2,然后再執(zhí)行其它語句
      如果不一致,程序直接崩潰
      如果在執(zhí)行代碼塊1的時候沒有出現(xiàn)異常,代碼塊2不會執(zhí)行,直接執(zhí)行其它語句
try:
    # print('a'+23)
    age = int('a')
except ValueError:
    print('出現(xiàn)異常,年齡只能是數(shù)字')
print('最后')
  • 3)語法三:
    try - except (異常類型1,異常類型2,...): 同時捕獲指定的多種異常
    try:
    代碼塊1
    except (異常類型1,異常類型2,...):
    代碼塊2

  • 4)語法四:
    try - except (異常類型1,異常類型2,...): 同時捕獲指定的多種異常
    try:
    代碼塊1
    except 異常類型1:
    代碼塊11
    except 異常類型2:
    代碼塊22

3.finally關(guān)鍵字

前面四種捕獲異常結(jié)構(gòu)的最后面都可以添加一個finally

  • 例:
    try:
    代碼塊1
    except:
    代碼塊2
    finally:
    代碼塊3
    其它語句
  • finally中代碼塊一定會執(zhí)行,和其它語句的區(qū)別就在于如果上面程序崩潰,其它語句不會執(zhí)行,但是finally中的語句會執(zhí)行

4.拋出異常

主動讓程序崩潰

  • 語法:
    raise 異常類型:

  • 說明:
    以指定異常類型崩潰,異常類型必須是exception的子類

模塊

1.什么是模塊

python中一個py文件就是一個模塊

2.怎么在一個模塊中使用另外一個模塊中的內(nèi)容

如果要在一個模塊中使用另外一個模塊中的內(nèi)容,必須先導(dǎo)入模塊

1)語法:

  • import 模塊名(就是py文件的名字) - 導(dǎo)入指定模塊,導(dǎo)入后可以在當(dāng)前模塊中使用模塊中所有的全局變量结闸, 以'模塊名.全局變量名'的方式去使用

  • form 模塊名 import 變量名1,變量名2,... - 導(dǎo)入指定模塊,導(dǎo)入后只能使用import后面指定的變量,導(dǎo)入后指定的全局變量在當(dāng)前模塊中直接使用,不用在前面加'模塊名.'

  • form 模塊名 import * - 導(dǎo)入指定模塊,導(dǎo)入后指定模塊中所有的全局變量都可以使用,不用在前面加'模塊名.'

重命名:

import 模塊名 as 新模塊名 - 導(dǎo)入后采用新模塊名去使用模塊中的內(nèi)容
from 模塊名 import 變量名1,變量名2, as 新變量名2

3.載入模塊的原理

當(dāng)執(zhí)行導(dǎo)入模塊的代碼的時候,會直接執(zhí)行被導(dǎo)入的模塊中所有的代碼

1)重復(fù)導(dǎo)入

import在導(dǎo)入模塊的時候會自動檢查當(dāng)前模塊是否已經(jīng)導(dǎo)入,如果已經(jīng)導(dǎo)入,不會再導(dǎo);所以重復(fù)導(dǎo)入不會有問題,因為根本不會導(dǎo)

2)阻止模塊中的內(nèi)容被其它模塊導(dǎo)入

將不需要被其它模塊執(zhí)行的語句寫入if name == 'main':對應(yīng)的if語句中
if name == 'main':
外部導(dǎo)入不會執(zhí)行的部分,但是不影響自身的使用

1.什么是包

一個帶有init.py文件的文件夾就叫包,

1)直接導(dǎo)入包

import 包名 - 實際上是執(zhí)行了包中的init,所以在init中要用form import導(dǎo)入包中其它模塊

2)從包中導(dǎo)入指定的模塊

from 包名 import 模塊名1,模塊名2,...

3)從包中指定模塊導(dǎo)入指定變量

form 包名.模塊名 import 變量

hashlib

1.什么是hashlib

  • hashlib是python3.x提供的一個hash加密的模塊:支持目前主流一些加密算法:sha256辩诞、md5等

hash加密特點:

a.相等的數(shù)據(jù)采用同一個加密算法坎弯,保證加密結(jié)果一樣
b.通過加密后的數(shù)據(jù)不能反向獲取原數(shù)據(jù)
c.采用同樣的加密算法,不管原數(shù)據(jù)的大小是多少,加密后的數(shù)據(jù)的長度是一樣的

2.加密步驟

1)根據(jù)加密算法創(chuàng)建hash對象

hash=hashlib.sha256()

2)對數(shù)據(jù)進(jìn)行加密

  • hash對象.update(加密數(shù)據(jù)) - 加密數(shù)據(jù)必須是二進(jìn)制數(shù)據(jù)
  • 字符串轉(zhuǎn)二進(jìn)制: a.字符串.encode)(encoding='utf-8') b. bytes(字符串,encoding='utf-8')
    pw=input('請輸入密碼:')
    hash.update('你好!'.encode()) # 二級加密,還可以多添加幾個多層加密
    hash.update(pw.encode())
    3)根據(jù)hash對象獲取加密后的數(shù)據(jù)(字符串類型)
    result = hash.hexdigest()
    print(result)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子抠忘,更是在濱河造成了極大的恐慌撩炊,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崎脉,死亡現(xiàn)場離奇詭異拧咳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)囚灼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進(jìn)店門骆膝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人灶体,你說我怎么就攤上這事阅签。” “怎么了蝎抽?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵愉择,是天一觀的道長。 經(jīng)常有香客問我织中,道長锥涕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任狭吼,我火速辦了婚禮层坠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刁笙。我一直安慰自己破花,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布疲吸。 她就那樣靜靜地躺著座每,像睡著了一般。 火紅的嫁衣襯著肌膚如雪摘悴。 梳的紋絲不亂的頭發(fā)上峭梳,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天,我揣著相機(jī)與錄音蹂喻,去河邊找鬼葱椭。 笑死,一個胖子當(dāng)著我的面吹牛口四,可吹牛的內(nèi)容都是我干的孵运。 我是一名探鬼主播,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蔓彩,長吁一口氣:“原來是場噩夢啊……” “哼治笨!你這毒婦竟也來了驳概?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤旷赖,失蹤者是張志新(化名)和其女友劉穎顺又,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杠愧,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年逞壁,在試婚紗的時候發(fā)現(xiàn)自己被綠了流济。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡腌闯,死狀恐怖绳瘟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情姿骏,我是刑警寧澤糖声,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站分瘦,受9級特大地震影響蘸泻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嘲玫,卻給世界環(huán)境...
    茶點故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一悦施、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧去团,春花似錦抡诞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鬼雀,卻和暖如春顷窒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背源哩。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工蹋肮, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人璧疗。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓坯辩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親崩侠。 傳聞我的和親對象是個殘疾皇子漆魔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,442評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1.異常 運(yùn)行程序的時候出現(xiàn)報錯,又叫程序出現(xiàn)異常當(dāng)執(zhí)行程序的時候如果出現(xiàn)異常,出現(xiàn)異常的線程會直接崩潰改抡,不再執(zhí)行...
    Ed97001閱讀 161評論 0 0
  • 1.異常 1)異常. 運(yùn)行程序的時候程序報錯矢炼,又叫程序出現(xiàn)異常;當(dāng)執(zhí)行程序的時候如果出現(xiàn)異常,出現(xiàn)異常的線程會直接...
    tcis閱讀 276評論 0 0
  • 1.異常 運(yùn)行程序的時候程序報錯阿纤,又叫程序出現(xiàn)異常;當(dāng)執(zhí)行程序的時候如果出現(xiàn)異常句灌,出現(xiàn)異常的線程會直接奔潰,不再執(zhí)...
    Lingod閱讀 129評論 0 1
  • 一.異常 1.異常 運(yùn)行程序的時候程序報錯, 又叫程序出現(xiàn)異常當(dāng)執(zhí)行程序的時候如果出現(xiàn)異常, 出現(xiàn)異常的線程會直接...
    風(fēng)月辭寒閱讀 170評論 0 0
  • 一欠拾、異常 1.異常 運(yùn)行程序的時候程序報錯胰锌,又叫程序出現(xiàn)異常 當(dāng)執(zhí)行程序的時候如果出現(xiàn)異常,出現(xiàn)異常的線程會直接奔...
    LI3e0閱讀 251評論 0 0