為什麼需要使用異常?
使用if作為錯誤處理機制時,無法窮舉所有的異常情況,而且在處理異常時處理**和業務**混合在一起,嚴重影響程式的可讀性。
使用raise語句自動引發異常。如果raise語句在try中,則會丟擲runtimeerror異常。如果raise在exception語句中,則會將exception中的異常丟擲。
python網路程式設計tcp,udp
網路程式設計,不管是使用tcp還是udp,都有socket程式包。
server = socket.socket(socket.af_inet,socket.sock_stewam) #建立伺服器套接字物件,第二個引數表示使用tcp
server.bind(('127.0.0.1',8000)) #建立的套接字物件繫結伺服器主機和埠
server.listen() #由於tcp是基於連線的協議,所以需要使用監聽
sock, addr = server.accept() #伺服器接受來自客戶端的連線
data = sock.recv(1024) #伺服器接受到客戶端傳送的訊息
sock.send('hello client'.encode()) #伺服器向客戶端傳送訊息
server.close() #伺服器關閉連線
sock.close() #連線物件關閉
client= socket.socket(socket.af_inet,socket.sock_stream) #建立客戶端套接字物件
client.connect(('127.0.0.1',8000)) #建立的套接字物件連線到伺服器上
client.send('hello server'.encode()) #客戶端向伺服器傳送資訊
client.recv(1024) #客戶端收到伺服器傳送的訊息
client.close() #通訊結束後,關閉客戶端的連線
server = socket.socket(socket.af_inet,socket.sock_dgram) #建立伺服器套接字物件,第二個引數表示使用udp協議
server.bind(('127.0.0.1',8000)) #建立的伺服器套接字物件繫結相應的位址和埠
data,addr=server.recvfrom(1024) #由於傳輸層使用udp協議,所以不需要監聽,只是在接收資訊時收到客戶端的位址和資訊
server.sendto('hello client'.encode(),addr) #根據收到的客戶端位址,再傳送資訊
server.close() #通訊結束,關閉伺服器物件
client= socket.socket(socket.af_inet,socket.sock_dgram) #建立客戶端套接字物件
client.sendto('hello server'.encode(),('127.0.0.1',8000)) #客戶端不需要連線到伺服器,只需在傳送資訊時指定相應的伺服器位址即可
client.recv(1024) #客戶端收到伺服器的資訊
client.close() #通訊結束關閉客戶端連線
http協議
http協議在應用層中使用。具有以下特點。
http協議需要請求和響應來完成通訊。
http是乙個無狀態的連線,所以引入了cookie,使得伺服器了解第二次連線的客戶端。
http協議的請求資源一般都是用url。
http請求中有各種方法,其中get,post方法使用頻率最高。get方法獲取資源,將各種引數加在url之後,post方法把請求放在請求體中,增加安全性。
http為持久連線,在伺服器響應的報文中,connection :keep-alive這個屬性使得下一次請求可以立刻連線,節約網路資源。
importurllib.requestimporturllib.parsedeftest_get():
req= urllib.request.request('',headers=headers)
resp=urllib.request.urlopen(req)print(resp.read().decode())deftest_post():
data=
data=urllib.parse.urlencode(data).encode()
req= urllib.request.request('login/userlogin',headers=headers,data=data)
resp=urllib.request.urlopen(req)print(resp.read().decode())
opencv dnn分類網路呼叫 python版
dnn測試使用示例,以分類網路為例實現。def load model onnx model net cv2.dnn.readnetfromonnx onnx model net.setpreferablebackend cv2.dnn.dnn backend cuda net.setpreferab...
python 提示錯誤 Python異常提示
一 在以前的 中已經看過異常。通常錯誤的 或輸入會引發異常。發生異常時,程式立即停止。下面的 通過嘗試將7除以0來產生 zerodivisionerror 異常。num1 7num2 0print num1 num2 顯示結果 zerodivisionerror division by zero 不...
vue 網路異常提示
在一般的專案中,我們的大部分異常都是由後端傳送過來的,前端只需要列印這些異常就行了。但是有一些情況除外,那就是網路異常 當有這些網路異常的時候,這些請求就沒有傳送到後端,所以後端是不能夠傳送這些異常資訊的,這個時候我們就需要在前端給使用者這些提示 在一般的正規專案中,我們一般都會在前端寫乙個請求 攔...