1. 程式人生 > >python第十天學習總結

python第十天學習總結

sys 裏的 all 什麽 網絡編程 處理方式 自定義模塊 好的 ket

一.模塊
1.什麽是模塊
一些功能的集合,寫好的方法 導入可以直接使用的,在python中模塊都是python文件
2.為何要使用模塊
節省內存 分門別類
3.模塊的種類
內置模塊 擴展模塊 自定義模塊
4.模塊和腳本
腳本是執行某個文件的時候 模塊不是直接執行的,而是在程序中被引用的文件
5.自定義模塊
命名規範:數字字母下劃線 不能以數字開頭
導入的時候相當於執行了這個模塊所在的文件。不能被多次導入 因為導入的情況都在sys.modules中記錄起來了
6.模塊的使用
import 模塊名 #可as起別名 可一行導入多個模塊
form 模塊名 import 變量名 #可用as給變量起別名 import 導入全部變量名,可用all
限制
7.使用模塊的註意事項
模塊之間不能出現循環引用
模塊的加載與修改(importlib)
把模塊當做腳本來執行(name)
模塊搜索路徑(sys.path)

二.包
1.什麽是包
帶著一個init文件的文件夾就是一個包,包裏放其它模塊
2.包的使用
import 包名 #導入一個包 意味著 執行這個包裏的init方法
from...import

三.異常處理
try:
#可能出異常的代碼
except 錯誤類型:
針對這個錯誤的處理方式
except Exception as e: # 萬能異常 只能寫在所有異常的最後
print(e)
else:
print(‘如果try中的代碼沒有發現異常 就執行‘)

finally:
print(‘無論如何都要執行‘)****

2.自定義異常
完成一個功能,在完成的過程中有一些特定的異常,這些異常不在內置的異常類型範圍內
class ccException(BaseException):
def init(self,msg):
self.msg=msg
try:
raise ccException(‘類型錯誤‘)
except ccException as e:
print(e)

四:網絡編程
1.機器上的一個程序 和另外一臺機器上的一個程序之間的通信叫網絡編程
server:
import socket
sk = socket.socket()

sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
sk.bind((‘127.0.0.1‘,8899))
sk.listen() # 開始監聽別人的鏈接
while True:
conn,addr = sk.accept()# 三次握手的過程,阻塞
while True:
msg = input(‘>>>‘).encode(‘utf-8‘)
conn.send(msg) #發送
if msg == b‘q‘:break
ret = conn.recv(1024) #接收
if ret == b‘q‘:break
print(ret.decode(‘utf-8‘))
conn.close() #揮手
sk.close()

client:
import socket
sk = socket.socket()
sk.connect((‘127.0.0.1‘,8899))
while True:
msg = sk.recv(1024).decode(‘utf-8‘)
if msg == ‘q‘:break
print(msg)
inp = input(‘>>>‘)
sk.send(inp.encode(‘utf-8‘))
if inp == ‘q‘:break
sk.close()

2.粘包
粘包現象:由於tcp協議對數據有拆包和包的機制,所以導致數據與數據之間是沒有條與條之間的限制的,接收到的數據就有可能粘在一起
粘包的解決:struct.pack struct.unpack

python第十天學習總結