运维开发网

python第十天学习总结

运维开发网 https://www.qedev.com 2020-02-22 11:33 出处:51CTO 作者:zhaoxiaobu
一.模块1.什么是模块一些功能的集合,写好的方法导入可以直接使用的,在python中模块都是python文件2.为何要使用模块节省内存分门别类3.模块的种类内置模块扩展模块自定义模块4.模块和脚本脚本是执行某个文件的时候模块不是直接执行的,而是在程序中被引用的文件5.自定义模块命名规范:数字字母下划线不能以数字开头导入的时候相当于执行了这个模块所在的文件。不能被多次导入因为导入的情况都在sys.m

一.模块

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

0

精彩评论

暂无评论...
验证码 换一张
取 消