![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python基础
文章平均质量分 67
思想流浪者
这个作者很懒,什么都没留下…
展开
-
python 00 基础目录
1原创 2021-06-03 19:28:10 · 62 阅读 · 0 评论 -
python 35 IO多路复用、select、selectors
https://www.cnblogs.com/yuanchenqi/articles/5722574.html一、事件驱动模型协程:遇到IO操作就切换但是什么时候切回去呢?怎么确定IO操作完了?传统的编程是如下线性模式的:开始--->代码块A--->代码块B--->代码块C--->代码块D--->......--->结束每一个代码块里是完成各种各样事情的代码,但编程者知道代码块A,B,C,D...的执行顺序,唯一能够改变这个流程的是数...原创 2021-05-29 13:57:24 · 261 阅读 · 0 评论 -
python 34 进程、线程、协程
一、进程和线程 1、进程假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作), 而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源。 是不是在程序A读取数据的过程中,让程序B去执行,当程序A读取完数据之后,让 程序B暂停,然后让程序A继续执行? 当然没问题,但这里有一个关键词:切换 既然是切换,那么这就涉及到了状态的保存,状态的恢复,加上程序A与程序B所需要的系统资 源(内存,硬盘,...原创 2021-05-26 20:03:59 · 539 阅读 · 0 评论 -
python 33 optparse 模块
optparse optparse主要用来为脚本传递命令参数,采用预先定义好的选项来解析命令行参数 实例化一个OptionParser()对象(可以传参也可以不传参),带参的话会把参数变量的内容作为帮助信息输出。 即可以用来自己定制程序的参数选项控制。 Python 有两个内建的模块用于处理命令行参数: 一个是 getopt,只能简单处理 命令行参数; 另一个是 optparse,它功能强大,而且易于使用,可以方便地生成标准的、符合Unix...原创 2021-05-21 19:49:58 · 445 阅读 · 1 评论 -
python 32 socket编程
一、客户端/服务端架构服务器-客户机,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。二、OSI七层 和TCP/IP五层模型七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)<1>..原创 2021-05-19 21:32:09 · 280 阅读 · 7 评论 -
Python 31 错误和异常
目录异常异常处理try/excepttry/except ... elsetry-finally抛出异常raise用户自定义异常断言 assertPython 有两种错误很容易辨认:语法错误和异常。Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。异常即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常异常处理try/excepttry:.原创 2021-05-16 09:07:47 · 607 阅读 · 0 评论 -
python 30 元类
元类1、python 中一切皆是对象,类本身也是一个对象,当使用关键字 class 的时候,python 解释器在加载 class 的时候会创建一个对象(这里的对象指的是类而非类的实例)class Student: passs = Student()print(type(s)) # <class '__main__.Student'>print(type(Student)) # <class 'type'>2、什么是元类 元类是类的类,是类的...原创 2021-04-28 22:22:33 · 71 阅读 · 0 评论 -
Python 29 描述符
描述符定义 描述符是一种类,我们把实现了__get__()、__set__()和__delete__()中的其中任意一种方法的类称之为描述符。 描述符的作用是用来代理一个类的属性,需要注意的是描述符不能定义在被使用类的构造函数中,只能定义为类的属性,它只属于类的,不属于实例,我们可以通过查看实例和类的字典来确认这一点。 描述符是实现大部分Python类特性中最底层的数据结构的实现手段,我们常使用的@classmethod、@staticmethd、@prope...原创 2021-04-28 00:04:32 · 215 阅读 · 0 评论 -
Python 27 特殊双下划线方法
目录__len__() 方法__str__ 方法__call__ 方法__new__ 构造方法__new__ 实现单例模式item 和 attr 系列项目中几乎不会自定义一个特殊双下划线方法,因为一般是给 Python 开发者在源码中使用__len__() 方法 这里假如要计算实例化对象a 的属性个数, 直接使用 len(a)将报 TypeError: object of type 'A' has no len(), 类没有 len() 方法 在类A...原创 2021-04-27 22:51:11 · 292 阅读 · 3 评论 -
Python 26 对象
1原创 2021-04-27 20:53:58 · 151 阅读 · 4 评论 -
python 28 动态导入模块
# 导入 m1/t.py module_t 实际上是指向到m1module_t = __import__("m1.t")print(module_t) # <module 'm1' from '/home/a5673/xuzj/05_code/python_base/03_python_base/day26/m1/__init__.py'>module_t.t.test1() # m1 -> t.py : test1()# 通过 import * 模块中带下划线的方法将不被.原创 2021-04-26 23:57:47 · 108 阅读 · 0 评论 -
python 25 configparser 模块
1原创 2021-04-25 19:52:01 · 206 阅读 · 0 评论 -
python 23 hashlib hmac 模块
hashlib 模块原创 2021-04-25 18:29:48 · 88 阅读 · 0 评论 -
python 24 logging 模块
一、简单应用import logginglogging.debug("debug message")logging.info("info message")logging.warning("warning message")logging.error("error message")logging.critical("critical message")# 日志级别 Logger名称 用户输出消息# WARNING:root:warning message# ER...原创 2021-04-21 21:03:35 · 303 阅读 · 1 评论 -
python 22 re 模块
re模块正则表达式操作,主要用于字符串查找和匹配。一、字符和语法1、字符. 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。 [...] 字符集。对应字符集中的任意字符,第一个字符是^则取反。 2、预定义字符集\d 匹配任意数字,等价于 [0-9] \D 匹配任意非数字,等价于 [^0-9] \s 匹配任意空白字符,等价于 [\t\n\r\f] \S ...原创 2021-04-21 00:39:01 · 364 阅读 · 0 评论 -
python 21 xml 模块
xml 模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单1、xml协议在各个语言里的都 是支持的,在python中可以用以下模块操作xmlimport xml.etree.ElementTree as ETtree = ET.parse("data.xml") # 解析xml数据root = tree.getroot() # 获取根节点print(root.tag) # data# 遍历xml文档for child...原创 2021-04-20 21:28:23 · 106 阅读 · 0 评论 -
python 20 json 和 pickle
目录json 模块pickle 模块json 模块 用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用, 但遇到特殊类型的时候,eval就不管用了,所以eval的重点还是通常用来执行一个字符串表达式,并返回表达式的值。序列化 和 反序列号 把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,序列化之后,就可以把序列化后的内容写入磁...原创 2021-04-20 01:23:20 · 78 阅读 · 0 评论 -
python 19 sys 模块
sys 模块import sys#-------> Dynamic objects:# 平台标识print(sys.platform) # win32# 解释器版本print(sys.version) # 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)]# 模块的搜索路径,第一个是执行脚本所在路径# 如果是通过pycharm 执行,第二个路径是pycharm.原创 2021-04-19 21:24:08 · 141 阅读 · 0 评论 -
python 18 os 模块
os 模块: os模块是与操作系统交互的一个接口os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cdos.curdir 返回当前目录: ('.')os.pardir 获取当前目录的父目录字符串名:('..')os.makedirs('dirname1/dirname2') 可生成多层递归目录os.removedirs('dirname1') 若目录为空,...原创 2021-04-19 07:48:30 · 152 阅读 · 0 评论 -
python 17 sys.path
通过__file__ 获取上一层路径__file__ 在pycharm 里面是绝对路径,在命令行模式下是文件名, 在pytharm 中寻找上上一级目录通过如下代码可以实现import sysimport os# 在pycharm 里面,__file__ 是绝对路径,在命令行模式下是文件名sys_path = os.path.dirname(os.path.dirname(__file__))print("sys_path = {}".format(sys_path))sys.pa...原创 2021-04-17 00:48:19 · 123 阅读 · 0 评论 -
pythom 16 random 模块
random 模块 生成随机数import randomprint(random.random()) # 随机返回 0 到 1 之间的浮点数 例如:0.5072104946318795print(random.randint(1, 10)) # 随机返回 1 到 10 (包含10) 之间的整数 例如:6print(random.randrange(1, 10)) # 随机返回 1 到 10 (不包含10) 之间的整数 例如:3print(random.choice(["a",..原创 2021-04-16 22:55:12 · 2797 阅读 · 0 评论 -
python 15 time 模块
time 模块三种时间表示: 在python中,通常有这几种方式表示时间: 时间戳(timestamp):通常来说,时间戳表示的是1970年1月1日00:00:00 开始按秒计算的偏移量,运行 type(time.time()), 返回的是float 类型 格式化的时间字符串 元组(struct_time): struct_time 元组共有9个元素:(年,月, 日,时,分,秒,一周中第几天,一年中第几天,夏令时)import time#1 time():返回...原创 2021-04-16 00:33:18 · 123 阅读 · 0 评论 -
python 14 模块和包
一、模块一个 .py 文件称之为一个模块(module)使用模块的好处: 提高代码的可维护性; 方便其他地方引用,减少重复代码 避免函数名和变量名冲突;相同名字的函数和变量可以分别存放在不同的模块中模块一共三种: python标准库 第三方模块 应用程序自定义模块模块的导入方法 import 语句 from ... import 语句 from ... import * 语句 运行本质 & sys...原创 2021-04-15 23:24:12 · 151 阅读 · 0 评论 -
python 13 读写文件记录(小测试)
需求:读取文件里面的记录,查询某个数据是否存在,如果数据存在,修改子一级某一条数据,将文件备份。如查询:www.oldboy1.org 是否存在,如果存在,将子一级数据中的 server 2.2.2.4 2.2.2.4 weight 20 maxconn 3000 修改为server 2.2.2.5 2.2.2.5 weight 30 maxconn 4000测试代码# 查询文件中数据方法def file_handler(backend_data): res = [] ...原创 2021-04-15 01:00:48 · 124 阅读 · 1 评论 -
python 12 装饰器
11原创 2021-04-15 00:03:47 · 156 阅读 · 0 评论 -
python 11 列表解析、迭代器、生成器函数
一、迭代器 递归:在函数定义中使用函数自身的方法。(A调用A) 迭代:利用变量的原值推算处变量的一个新值。(A不停调用B)1、概念 迭代器,被用于迭代的对象。利用变量的原值推算处变量的一个新值。(A不停调用B)2、为什么要有迭代器?什么是可迭代对象?什么是迭代器对象? 对于序列类型:字符串、列表、元组,我们可以使用索引的方式迭代取出其包含的元素。但对于字典、集合、文件等类型是没有索引的,若还想取出其内部包含的元素,则必须找出一种不依赖于索引的迭代方式,这就是迭代器...原创 2021-04-08 22:21:36 · 166 阅读 · 0 评论 -
python 10 文件处理
目录一、文件操作二、打开文件的模式三、操作文件的方法四、文件内光标移动五、文件修改六、文件的操作(代码)1、读取文件2、写文件3、文件追加4、文件处理模式b模式5、文件的方法调用6、通过with 关键字操作文件一、文件操作1、介绍 计算机系统分为:计算机硬件、操作系统、应用程序三部分 python或其他语言编写的应用程序如果想把数据永久保存下来,必须保存与硬盘中,这涉及到应用程序要操作硬件。...原创 2021-03-31 19:24:45 · 341 阅读 · 0 评论 -
python 08 map、filter、reduce
map返回一个可迭代对象,这个可迭代对象通过function计算每一个元素产生# 对列表中的数字取平方,方法单一num1 = [1, 2, 3, 4, 5]def map_test(array): ret = [] for i in num1: ret.append(i ** 2) return retprint(map_test(num1)) # [1, 4, 9, 16, 25]# 对列表中的元素进行未知操作, 自己实现内部逻辑num...原创 2021-03-30 21:52:14 · 134 阅读 · 2 评论 -
python 09 内置函数
目录内置函数 (分类纯属个人理解)进制转换 bin oct hex intbinocthexint符号和序值转换 chr ordchrord数学运算类 divmod pow round absdivmodpowroundabssumsum 和 reduce 比较执行字符串 eval execevalexeceval 和 exec 的区别判断类 all anyallany对象简单操作 hash len id...原创 2021-03-30 16:40:40 · 175 阅读 · 0 评论 -
python 06 函数参数
#=========函数参数==========================#1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。# 因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量#2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,# 它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值def calc(x, y): res = x**y .原创 2021-03-29 23:06:35 · 60 阅读 · 0 评论 -
python 05 作用域
目录作用域python 的4种作用域内置作用域作用域作用域就是一个python程序可以直接访问命名空间的正文区域。python 的4种作用域Python的作用域一共有4种,分别是:L (Local): 最内层,包含局部变量,比如一个函数/方法内部E (Enclosion): 包含了非局部(non-local) 也非全局(non-global) 的变量。比如两个嵌套函数,一个函数(或类)A 里面又包含了一个函数 B ,那么A 中的变量对于 B 中的作用域就为 nonlo..原创 2021-03-29 23:05:22 · 92 阅读 · 2 评论 -
python 07 匿名函数
目录匿名函数1、匿名函数介绍2、语法3、使用场景4、匿名函数和普通函数的对比5、匿名函数的多种形式6、lambda 作为一个参数传递7、lambda函数与python内置函数配合使用8、lambda 作为函数的返回值匿名函数1、匿名函数介绍在python中,不通过def来声明函数名字,而是通过 lambda 关键字来定义的函数称为匿名函数。lambda函数能接收任何数量(可以是0个)的参数,但只能返回一个表达式的值,lambda函数是一个函数对象,直.原创 2021-03-29 23:01:38 · 185 阅读 · 2 评论 -
python 04 global 和 nonlocal
print("test global and nonlocal")#一、 全局变量 和 局部变量"""局部变量:定义在函数内部的变量称为局部变量,他的作用域范围为函数内,也就是出了函数外就无效。 全局变量是位于模块文件内部的顶层的变量名 全局变量如果是在函数内被赋值的话,必须经过声明 全局变量名在函数内部不经过声明也可以被引用全局变量:定义在函数外的变量称之为全局变量,他的作用域范围为全局。"""# 二、global 和 nonlocal.原创 2021-03-29 17:46:46 · 126 阅读 · 2 评论 -
Python 03 字符串格式
Python的字符串格式化有两种方式:百分号方式 和 format方式百分号的方式相对来说比较老, format方式则是相对比较先进,企图替换古老的方式,目前两者都支持。1、 百分号%[(name)][flags][width].[precision]typecode""" (name) 可选,用于选择指定的key flags 可选,可供选择的值有: + 右对齐;正数前加正好,负数前加负号; ...原创 2021-03-29 12:50:37 · 124 阅读 · 0 评论 -
python 02 set 集合
set 集合集合(set)是一个无序的不重复元素序列。可以使用大括号 {} 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。目录set 集合创建集合addcleardiscardremovepopupdatecopydifferencedifference_updateintersectionintersection_updateisdisjointissubs原创 2021-03-26 01:41:07 · 223 阅读 · 4 评论 -
python 01 运算符和数据类型
12原创 2021-03-25 21:59:15 · 461 阅读 · 2 评论