Day13 - 總結

1. 異常

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

2. 異常捕獲

2.1 語法一: 可以捕獲任何類型的異常

????try:
????????代碼塊1
????except:
????????代碼塊2
????finally:
????????代碼塊3
????其他語句

說明:

????try,except - 關鍵字亿胸,固定寫法
????代碼塊1 - 和try保持一個縮進的一條或者多條語句;
????????????????????需要捕獲異常的代碼
????代碼塊2 - 和except保持一個縮進的一條或者多條語句
????????????????????異常發(fā)生后會執(zhí)行的代碼

執(zhí)行過程:

????先執(zhí)行代碼塊1,如果在執(zhí)行代碼塊1的時候出現(xiàn)了異常外邓,程序不崩潰,直接執(zhí)行代碼塊2古掏,然后再執(zhí)行后面的其他語句损话;如果在執(zhí)行代碼塊1的時候沒有出現(xiàn)異常,代碼塊2不會執(zhí)行槽唾,直接執(zhí)行后面的其他語句丧枪。

try:
    print({'a': 10}['b'])  # KeyError: 'b'
    print('++++++')
    list1 = [1, 2, 3]
    print(list1[10])
    print('=======')
except:
    print('出現(xiàn)異常!')


# name = input('姓名:')
# try:
#     age = int(input('年齡:'))
# except:
#     print('輸入有誤!年齡只能是數(shù)字!')

2.2 語法二: 捕獲指定異常

????try:
????????代碼塊1
????except 異常類型:
????????代碼塊2
????finally:
????????代碼塊3

執(zhí)行過程:

????先執(zhí)行代碼塊1, 如果執(zhí)行代碼塊1的時候出現(xiàn)異常庞萍,檢查異常類型和except后面的異常類型是否一致拧烦,如果一致程序不崩潰,直接執(zhí)行代碼塊2钝计;如果不一致恋博,程序直接崩潰齐佳;如果執(zhí)行代碼塊1的時候沒有出現(xiàn)異常,不執(zhí)行代碼塊2债沮,接著往后執(zhí)行炼吴。

print('========================')
try:
    print({'a': 1}['b'])
    print('+++++')
    print([1, 2, 3][10])
    print('======')
except KeyError:
    print('key值錯誤!')

2.3 語法三: 同時捕獲指定多個異常

????try:
????????代碼塊1
????except (異常類型1, 異常類型2,...):
????????代碼塊2
????finally:
????????代碼塊3

2.4 語法四: 同時捕獲指定多個異常

????try:
????????代碼塊1
????except 異常類型1:
????????代碼塊11
????except 異常類型2:
????????代碼塊22
????...
????finally:
????????代碼塊3

2.5 finally關鍵字

????前面四種捕獲異常的結構的最后都可以添加一個finally;finally后面的代碼段一定會執(zhí)行。

????try:
????????代碼塊1
????except:
????????代碼塊2
????finally:
????????代碼塊3
????其他語句

try:
    # print({'a': 10}['b'])
    print('=====')
    print([1, 2, 3][10])
except IndexError:
    print('錯誤! 下標越界!')
finally:
    print('寫遺書!')

print('其他語句')

2.6 拋出異常

????主動讓程序奔潰

語法:

????raise 異常類型

說明:

????異常類型必須是Exception的子類

# raise ValueError


class AgeError(Exception):
    def __str__(self):
        return '年齡值范圍不在0~150'


age = 1000
if not 0 <= age <= 150:
    raise AgeError

3. 什么是模塊

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

3.1 怎么一個模塊中使用另外一個模塊中的內容

????如果要在一個模塊中去使用另外一個模塊中的內容疫衩,必須先導入模塊

語法:
a.import 模塊名 - 導入指定模塊硅蹦,導入后可以在當前模塊中使用模塊中所有的全局變量,以'模塊名.全局變量名'的方式去使用
b.from 模塊名 import 變量名1,變量名2,... - 導入指定模塊隧土,導入后只能使用import后面指定的變量,導入后指定的全局變量在當前模塊中直接使用提针,不用在前面加'模塊名.'
c.from 模塊名 import * - 導入指定模塊,導入后可以在當前模塊中使用模塊中所有的全局變量;導入后全局變量直接使用曹傀,不用加'模塊名.'
d.import 模塊名 as 新模塊名 - 導入后采用新模塊名去使用模塊中的內容
e.from 模塊名 import 變量名1 as 新變量名1, 變量名2 as 新變量名2,...
# 導入方式一:
 import test
 print(test.test_a, test.test_str1)
 test.func1()

# 導入方式二:
 from test import test_a, func1
 print(test_a)
 func1()
 print(test_str1)   # NameError: name 'test_str1' is not defined

# 導入方式三:
 from test import *
 print(test_a, test_str1)
 func1()

 #模塊重命名:
 import fileManager as FM
 FM.write_file(900)
 FM.json_read()

 import time as TIME
 time = 10
 print(TIME.sleep(1), time)

 from test import a as ta
 a = 100
 print(a, ta)

3.2 導入模塊的原理

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

a.重復導入問題

????import在導入模塊的時候會自動檢測這個模塊之前是否已經導入過,來避免一個模塊的重復導入

b.阻止模塊中的內容被其他模塊導入

????將不需要被其他模塊執(zhí)行的語句寫入"if name == 'main':"對應的if語句中

import test2
print('04:', __name__)

4. 什么是包

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

4.1 直接導入包 - 只執(zhí)行init.py文件

import pygame
# import animal
# print(animal.bird.b)
# print(animal.type)
# animal.fly()
from animal import fly
fly()

# 2.從包中導入指定的模塊
# from animal import bird, dog, cat
# print(bird.b, dog.d, cat.c)

# 3.從包中的模塊導入變量
# from animal.cat import c
# print(c)
import time
import os
import sys
import hashlib


"2019/8/7 16:07:23"
print(time.time())


print(sys.version)
# print(sys.exit())
print(sys.maxsize)
print(sys.path)

5. 加密

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

5.1 hash加密特點:

a. 相等的數(shù)據(jù)采用同一個加密算法皆愉,保證加密結果一樣
b. 通過加密后的數(shù)據(jù)不能反向獲取原數(shù)據(jù)
c. 采用同樣的加密算法,不管原數(shù)據(jù)的大小是多少艇抠,加密后的數(shù)據(jù)的長度是一樣的
pw = input('請輸入密碼:')

# 2.加密步驟
# 1)根據(jù)加密算法創(chuàng)建hash對象
hash = hashlib.md5()
# 2)對數(shù)據(jù)進行加密
# hash對象.update(加密數(shù)據(jù))   -  加密數(shù)據(jù)必須是二進制數(shù)據(jù)
# 字符串轉二進制: a.字符串.encode(encoding='utf-8')  b. bytes(字符串, encoding='utf-8')
# hash.update('你好!'.encode())
hash.update(pw.encode())
# 3)根據(jù)hash對象獲取加密后的數(shù)據(jù)(字符串類型)
result = hash.hexdigest()
# sha256:8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
# sha256:8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
# sha1:  7c4a8d09ca3762af61e59520943dc26494f8941b
# md5:   e10adc3949ba59abbe56e057f20f883e
# sha256:0d6fe5a72b9f458fb117050549f96fad9c83f21e2fb8267e3402a5ac0a2773ce
# sha256:292641079fc2e9f736a577ba36d47291b99ac3bc8d9d133ea6b2f9b4173a3832
print(result)

# d3ecf18ba4bcb13e03ed25dee7d94870
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末幕庐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子家淤,更是在濱河造成了極大的恐慌异剥,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件絮重,死亡現(xiàn)場離奇詭異冤寿,居然都是意外死亡,警方通過查閱死者的電腦和手機青伤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門督怜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人狠角,你說我怎么就攤上這事号杠。” “怎么了丰歌?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵姨蟋,是天一觀的道長。 經常有香客問我立帖,道長眼溶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任厘惦,我火速辦了婚禮偷仿,結果婚禮上哩簿,老公的妹妹穿的比我還像新娘。我一直安慰自己酝静,他們只是感情好节榜,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著别智,像睡著了一般宗苍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上薄榛,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天讳窟,我揣著相機與錄音,去河邊找鬼敞恋。 笑死丽啡,一個胖子當著我的面吹牛,可吹牛的內容都是我干的硬猫。 我是一名探鬼主播补箍,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼啸蜜!你這毒婦竟也來了坑雅?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤衬横,失蹤者是張志新(化名)和其女友劉穎裹粤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜂林,經...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡遥诉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了悉尾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片突那。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖构眯,靈堂內的尸體忽然破棺而出愕难,到底是詐尸還是另有隱情,我是刑警寧澤惫霸,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布猫缭,位于F島的核電站,受9級特大地震影響壹店,放射性物質發(fā)生泄漏猜丹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一硅卢、第九天 我趴在偏房一處隱蔽的房頂上張望射窒。 院中可真熱鬧藏杖,春花似錦、人聲如沸脉顿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽艾疟。三九已至来吩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蔽莱,已是汗流浹背弟疆。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盗冷,地道東北人怠苔。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像仪糖,于是被迫代替她去往敵國和親嘀略。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內容

  • 1.異常 運行程序的時候程序報錯乓诽,又叫程序出現(xiàn)異常;當執(zhí)行程序的時候如果出現(xiàn)異常,出現(xiàn)異常的線程會直接奔潰咒程,不再執(zhí)...
    Lmf007閱讀 225評論 0 0
  • 異常 運行程序的時候程序報錯鸠天,又叫程序出現(xiàn)異常; 當執(zhí)行程序的時候如果出現(xiàn)異常帐姻,出現(xiàn)異常的線程會直接崩潰(多線程不...
    茅人閱讀 200評論 0 0
  • 一稠集,異常 1.異常 運行程序的時候程序報錯,又叫程序出現(xiàn)異常當執(zhí)行程序的時候如果出現(xiàn)異常饥瓷,出現(xiàn)異常的線程會直接崩潰...
    oct___d38e9閱讀 189評論 0 0
  • 一剥纷、異常 1.異常 運行程序的時候程序報錯,又叫程序出現(xiàn)異常呢铆。當執(zhí)行程序的時候如果出現(xiàn)異常晦鞋,出現(xiàn)異常的線程會直接崩...
    浩子_唯一號閱讀 244評論 0 1
  • 你可以一天上九節(jié)課兩節(jié)晚自習,你可以一天寫完兩支筆芯做至少三套卷子,你可以早起十分鐘晚睡十分鐘記幾個單詞和成語,你...
    奈落000閱讀 539評論 0 3