python異常、模塊與包
異常:就是產生bug,程序運行出現異常
異常的捕獲
作用:提前假設某處會出現異常,做好提前準備,當真的出現異常的時候,可以有后續手段
基本語法:
try:
可能發生錯誤的代碼
except:
如果出現異常執行的代碼
實例:(需求:嘗試以‘r’模式打開文件,如果文件不存在,則以‘w’方式打開)
try:
f=open('linux.txt','r')
expect(捕獲所有異常):
f=open('linux.txt','w')
捕獲指定異常:基本語法
try:
print(name)
except NameError(可根據異常類型進行修改) as e(記錄異常的具體信息):
print('name變量名稱定義錯誤')
注意事項:如果嘗試執行的代碼異常和要捕獲的異常類型不一致,則無法捕獲異常;一般try下方只放一行執行的代碼
捕獲多個異常:語法:
try:
print(1/0)
exxcept (NameError,ZeroDivisionErrro):
print('ZeroDivision錯誤...')
捕獲所有異常:
try:
f=open('D:/123.txt','r')
except Exception as e:
print('出現異常')
異常else
else表示如果沒有異常要執行的代碼
try:
print(1)
except:
print(e)
else:
print('我是else,是沒有異常時執行的代碼')
異常的finally
finally表示無論是否異常都要執行代碼,例如關閉文件
try:
print(1)
except:
print(e)
else:
print('我是else,是沒有異常時執行的代碼')
finally:
f.close()
異常的傳遞
示例:
def func01(): #異常在func01中未捕獲
print('這是func01的開始')
num=1/0
print('這是func01的結果')
def func02(): #異常在func02中未捕獲
print('這是func02的開始')
func01()
print('這是func02的結果')
def main(): 異常在主函數中被捕獲
try:
func02()
except Exception as e:
print(e)
傳遞性:當函數func01中發生異常,并且沒有捕獲處理這個異常時,異常會傳遞到函數func02,當func02也沒有捕獲處理這個異常的時候,main函數會捕獲這個異常
python模塊
模塊的導入:
模塊:是一個python文件,以.py結尾。模塊能定義函數,類和變量也能包含可執行的代碼
可認為一個模塊就是一個工具包(有著不同的功能)
使用模塊前需要導入,語法:
[from 模塊名] import [模塊|類|變量|函數|*] [as 別名]
常用的組合形式如:
import 模塊名;from 模塊名 import 類、變量、方法等;from 模塊名 as 別名;from 模塊名 import 功能名 as 別名;from 模塊名 import *
import 模塊名
基本語法:
import 模塊名
import 模塊名1,模塊名2
模塊名.功能名()
案例:
import time #導入時間模塊,可以使用其中的所有功能
print('開始')
time.sleep(1) # 讓程序睡眠1秒(阻塞)
print('結束')
from 模塊名 import 功能名
基本語法:
from 模塊名 import 功能名
功能名()
案例:
from time import sleep # 導入time模塊中的sleep方法
print('開始')
sleep(1) # 讓程序睡眠1秒
print('結束')
from 模塊名 import *
語法:
from 模塊名 import * # *號表示可以使用模塊中的所有功能
功能名()
案例:
from time import * #導入模塊中的所有方法
print('開始')
sleep(1) # 讓程序睡眠1秒
print('結束')
as定義別名 #給模塊或者功能改個名字
基本語法:
import time as 別名 # 模塊定義別名
from 模塊名 import 功能名 as 別名
案例:
import time as tt
tt.sleep(1)
print('Hello')
from time import sleep as tt
tt(1)
print('Helo')
自定義模塊(自己制作一個模塊)
案例:新建一個python文件,命名為my_modelel.py,并定義test函數

_ _ main_ 變量的作用:當自定義模塊時,須測試模塊功能為了防止在調用模塊時影響,使用該語句可以避免
if_name=="main"表示,只有當程序是直接執行的才會進入if內部,如果是被導入,則if無法進入
_ all _ 變量:當一個模塊文件中有'all'變量,當使用'from xxx import *'導入時,只能導入這個列表中的元素。
注意:不同模塊,同名的功能,如果都被導入,那么后導入的會覆蓋先導入的
python包
python包:可看作一個文件夾,在文件夾下包含了一個_init.py文件(包含則是python包,不包含則是普通包),該文件包含多個模塊文件,邏輯上認為依舊是模塊

第三方包:非python官方內置的包,可以安裝它們拓展功能,提升開發雄安率
包:一堆同類型功能的集合體
第三方包可以大大的提升開發效率:
科學計算中常用:numpy包
數據分析中常用:pandas包
大數據計算常用包:pyspark,apache-flink包
圖形可視化常用:matolotlib,pyecharts
人工智能常用:tensorflow
如何安裝:
在命令提示符內(搜素欄里面輸入cmd)
1:pip install 包名稱;2:pip install -i https://pypi.tuna,tsinghua.edu.cn/simple 包名稱
在pycharm中安裝

浙公網安備 33010602011771號