
Python基础
文章平均质量分 76
python基础学习笔记
Aspirantlu
所有的努力最终都会绕个大圈回报给你
展开
-
Python getattr详解
函数得到的是一个模块对象,即一个表示 Python 模块的对象。模块对象是一个包含模块中所有定义的类、函数、变量等的命名空间,我们可以使用模块对象来访问这些定义。例如,我们可以使用module对象来访问data.py文件中定义的Data类和在上述代码中,我们首先使用函数导入了data.py文件,然后通过module对象访问了Data类和函数。我们还使用()运算符创建了Data类的实例对象data,并调用了函数,获取了数据列表。原创 2023-05-06 17:18:14 · 14895 阅读 · 0 评论 -
Pandas 导出到 Excel 并设置自适应列宽
【代码】Pandas 导出到 Excel 并设置自适应列宽。原创 2023-02-15 18:01:49 · 1679 阅读 · 0 评论 -
Python unittest控制用例的执行顺序
Python unittest控制用例的执行顺序……直接上正文用例的执行顺序和书写次序无关,默认是根据ASCII码的顺序加载测试用例,所以执行顺序如下:基于unittest的机制,介绍2种控制用例执行顺序的方式:方式一:通过修改函数名的方式,这里就不进行演示,推荐方式二。方式二:手写一个Loader类并继承TestLoader类,改写里面的排序方法;在unittest运行的时候传入这个新的Loader。class MyTestLoader(unittest.TestLoader)原创 2021-12-09 18:31:51 · 3173 阅读 · 0 评论 -
Python之常用设计模式(创建型模式篇)
Python之常用设计模式一、设计模式分类1. 创建型模式工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式2. 结构型模式适配器模式、桥模式、组合模式、装饰模式、外观模式、享元模式、代理模式3. 行为型模式解释器模式、责任链模式、命令模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、访问者模式、模板方法模式二、创建型模式1. 简单工厂模式内容不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例。角色(类)工厂原创 2021-06-20 14:53:51 · 1858 阅读 · 26 评论 -
Python网络编程(小白一看就懂)
Python网络编程(小白一看就懂)一、网络编程基础概念1. mac地址与ip地址举个例子,在大学校园,找到名叫Lucy的男神可以用学号,脱离了校园,你要找到Lucy男神,你就要通过身份证号,这里学号是临时的编号,变化的,出了校园就不可用了;身份证号是唯一标识,不变的,在哪里都能找到。在计算机中,也有类似的概念,不变的是mac地址,能够唯一标识你这台机器;变化的是ip地址,能够更方便的找到你的机器。(可以类比生活中运送快递)1.1 ip地址ipv4协议:规定ip地址是由四位点分十进制数组成,每一原创 2021-06-20 14:50:08 · 12206 阅读 · 106 评论 -
Python并发编程之线程的玩法
一、线程基础以及守护进程线程是CPU调度的最小单位全局解释器锁全局解释器锁GIL(global interpreter lock)全局解释器锁的出现主要是为了完成垃圾回收机制的回收机制,对不同线程的引用计数的变化记录的更加精准。全局解释器锁导致了同一个进程中的多个线程只能有一个线程真正被CPU执行。GIL锁每执行700条指令才会进行一次(轮转)切换(从一个线程切换到另外一个线程)节省的是IO操作(不占用CPU)的时间,而不是CPU计算的时间,因为CPU的计算速度非常快,大多数情况下,我们没有办原创 2021-06-13 23:13:24 · 5194 阅读 · 109 评论 -
Python并发编程之进程的玩法
一、操作系统基础1. I/O操作IO操作是相对内存来说的。输入指往内存中输入,输出指从内存中往外输出。文件操作:read(输入),write(输出)网络操作:send(输出),recv(输入)函数:print(输出),input(输入)2. 计算机的工作分为两个状态CPU工作:做计算(对内存中的数据进行操作)的时候工作CPU不工作:IO操作的时候不工作3. 多道操作系统将原来的顺序的一个一个执行的思路变成共同存在在一台计算机中,其中一个程序执行让出CPU之后,另一个程序能继续使用CPU,原创 2021-06-13 23:00:35 · 3543 阅读 · 43 评论 -
人人都能看懂的Django REST framework
文章目录一、前后端分离1. 开发模式2. 前后端分离的优势3. 为什么要有前后端分离4. 前后端分离的缺点二、RESTful API1. RESTful API设计规范三、快速入手四、序列化1. 普通序列化1.1 模型类1.2 序列化1.3 参数约束1.4 利用反序列化生成模型对象1.5 利用序列化生成JSON数据2. 模型序列化ModelSerializer2.1 序列化2.2 编写视图2.3 编写子路由2.4 编写根路由2.5 注意3. 模型序列化(高级)3.1 模型类3.2 序列化3.3 视图3.4原创 2021-06-06 23:19:01 · 1905 阅读 · 5 评论 -
Django学习笔记(下)
文章目录18 Template概念19 模版语法19.1 变量19.2 点语法19.3 标签20 常见的请求状态码21 view视图函数21.1 概念及基础语法21.2 内置函数21.3 页面中的反向解析21.3.1 反向解析的基本使用21.3.2 反向解析的位置参数21.3.3 反向解析的关键字参数21.3.4 优点21.4 视图函数中的反向解析21.4.1 基本使用21.4.2 位置参数21.4.3 关键字参数22 request对象22.1 概念22.2 path22.3 GET22.4 POST22原创 2021-06-06 23:09:25 · 10275 阅读 · 104 评论 -
re模块的玩法都在这里~~~
文章目录一、正则函数re.match函数re.search函数re.sub函数re.subn函数re.compile函数re.findall函数re.finditer函数re.split函数小结二、compile函数1. match函数2. search函数3. findall函数4. finditer函数5. split函数6. sub函数7. subn函数小结三、元字符和通用字符四、贪婪与非贪婪匹配五、分组六、正则表达式修饰符七、扩展想要使用python的正则表达式功能就需要调用re模块,re模块为原创 2021-05-29 23:34:02 · 8208 阅读 · 85 评论 -
Python开发加薪利器之Docker的使用
文章目录1. Docker概述1.1 虚拟机技术VS容器化技术1.2 名词概念镜像(image)容器(container)仓库(repository)2. Docker安装2.1 环境查看2.1.1 查看内核版本2.1.2 查看系统信息2.2 卸载旧的版本2.3 安装必要的包2.3.1 更新apt程序包索引2.3.2 安装必要的包2.4 添加GPG密钥2.5 添加稳定Docker-ce软件源2.6 安装Docker引擎2.6.1 安装apt包索引2.6.2 安装2.7 添加当前用户到 docker 用户组2原创 2021-05-28 12:02:25 · 9086 阅读 · 81 评论 -
多版本Python解释器的使用和pip的使用
多版本Python解释器的使用同时安装了Python3.6和Python3.7,将目录C:\Users\malulu\AppData\Local\Programs\Python\Python36-32下的python.exe改为python3.6.exe,在将目录C:\Users\malulu\AppData\Local\Programs\Python\Python37-32下的python.exe改为python3.7.exe。多版本pip的使用python3.6 -m pip install xx原创 2021-02-04 16:42:43 · 2271 阅读 · 4 评论 -
Python-collections模块
collections模块这个模块实现了特定目标的容器,以提供Python标准内建容器 dict、list、set、tuple 的替代选择。Counter:字典的子类,提供了可哈希对象的计数功能defaultdict:字典的子类,提供了一个工厂函数,为字典查询提供了默认值OrderedDict:字典的子类,保留了他们被添加的顺序namedtuple:创建命名元组子类的工厂函数deque:类似列表容器,实现了在两端快速添加(append)和弹出(pop)ChainMap:类似字典的容器类,将多原创 2020-09-27 10:29:34 · 25214 阅读 · 225 评论 -
Python上下文管理器
1. 上下文管理器一个类只要实现了 __enter__() 和 __exit__() 这个两个方法,通过该类创建的对象我们就称之为上下文管理器。上下文管理器可以使用 with 语句,with语句之所以这么强大,背后是由上下文管理器做支撑的,也就是说刚才使用 open 函数创建的文件对象就是就是一个上下文管理器对象。自定义上下文管理器类,模拟文件操作:定义一个File类,实现 __enter__() 和 __exit__() 方法,然后使用 with 语句来完成操作文件, 示例代码:# 自定义上下原创 2020-09-25 10:51:34 · 7691 阅读 · 58 评论 -
Python装饰器(你想知道的这里都有)
1. 装饰器的定义就是给已有函数增加额外功能的函数,它本质上就是一个闭包函数。装饰器的功能特点:不修改已有函数的源代码不修改已有函数的调用方式给已有函数增加额外的功能闭包和装饰器的区分:如果闭包函数的参数有且只有一个,并且是函数类型,那么这个闭包函数称之为装饰器。写代码要遵循开放封闭原则,它规定已经实现的功能代码不允许被修改,但可以被扩展。2. 装饰器的示例代码# 定义装饰器def decorator(func): def inner(): # 在内部函数里原创 2020-09-25 10:47:57 · 61943 阅读 · 589 评论 -
Python中第三方库-Faker
项目开发初期,为了测试方便,我们总要造不少假数据到系统中,尽量模拟真实环境。比如要创建一批用户名,创建一段文本,电话号码,街道地址、IP地址等等。平时我们基本是键盘一顿乱敲,随便造个什么字符串出来,当然谁也不认识谁。现在你不要这样做了,用Faker就能满足你的一切需求。1. 安装pip install Faker2. 简单使用>>> from faker import Faker>>> fake = Faker(locale='zh_CN')>&原创 2020-09-17 23:09:34 · 7548 阅读 · 5 评论 -
Python中面向对象(学习笔记)
文章目录一、面向过程与面向对象简述面向过程编程面向对象编程二、类和对象类对象(实例)类和对象的关系三、类的定义四、类中的成员类属性实例函数(对象函数,成员函数)实例函数和普通函数的区别关于self创建对象(实例化对象)调用类中的实例函数动态绑定属性和限制绑定动态绑定属性限定绑定内存中的对象构造函数工作原理给 `__init__()` 设置参数析构函数1. 将对象定义为全局变量,程序执行完毕,对象自动被销毁2. 将对象定义为局部变量,当指定的函数执行完毕,则对象随着会被自动销毁3. 强制销毁对象,什么时候de原创 2020-06-15 09:29:18 · 27642 阅读 · 134 评论 -
Python中随机数的使用
随机数功能1. choice(seq)此处的 seq 必须是有序的序列,返回序列中的一个随机项。from random import *c1 = choice([1, 2, 3, 4, 5])c2 = choice((1, 2, 3, 4, 5))c3 = choice(range(1, 11))print(c1, c2, c3)2. randint(start, end)返回 [start, end] 之间的一个随机整数。包头又包尾。from random import *r原创 2020-06-08 19:39:35 · 4687 阅读 · 74 评论 -
Python-集合学习笔记(完)
文章目录集合集合的创建空集合列表去重集合元素的增加集合元素的删除集合的变相改值集合的运算1. 交集2. 并集3. 差集4. 反交集5. 子集与超集集合集合是无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典中的“键对象”,因此是不能重复的且唯一的。无序,用{}括起来,不包含重复元素。集合中的元素是不可变的数据,但集合本身是可变的数据类型。集合不能进行改的操作,但可以变相改值(先删除后增加)。集合的创建方式一:sets1 = set({1, 'lucy', Fals原创 2020-06-08 17:02:56 · 2591 阅读 · 28 评论 -
Python-元组学习笔记(完)
文章目录元组(tuple)元组的创建1. 通过`()`创建元组,小括号可以省略。2. 通过`tuple()`创建元组3. 使用`zip()`方法4. 推导式创建元组访问元组的元素1. 元组的元素不能修改2. 访问元组的元素和列表一样,只不过返回的仍然是元组对象元组的两个方法总结元组(tuple)元组属于不可变序列,不能修改元组中的元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。元组的创建1. 通过()创建元组,小括号可以省略。t1 = (1, 2, 3, 3)print(t1) #原创 2020-06-07 19:11:39 · 1727 阅读 · 19 评论 -
Python-字典学习笔记(完)
文章目录字典字典的创建1. 方式一2. 方式二3. 方式三4. 方式四5. 方式五访问字典元素字典元素添加字典元素删除字典的其他方法序列解包(拆包)字典字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:“键对象”和“值对象”。可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。列表中我们通过“下标数字”找到对应的对象。字典中通过“键对象”找到对应的“值对象”。“键”是任意的不可变数据,比如:整数、浮点数、字符串、元组。但是:列表、字典、集合这些可变对象,不能作为“键”原创 2020-06-07 14:50:34 · 4036 阅读 · 67 评论 -
Python-列表学习笔记(完)
文章目录列表列表的创建1. 基本语法`[]`创建2. `list()`创建3. 通过`range()`创建整数列表4. 列表推导式列表元素的增加列表元素的删除列表元素的访问列表元素出现的次数切片(slice)列表的排序列表元素的查找列表的其他方法列表相关的内置函数列表列表:用于存储任意数目、任意类型的数据集合。列表的创建1. 基本语法[]创建a = [1, 'jack', True, 100]b = []2. list()创建使用list()可以将任何可迭代的数据转化成列表a = lis原创 2020-06-06 09:35:03 · 12124 阅读 · 105 评论 -
Python-字符串学习笔记(完)
文章目录字符串基本特点编码表示方式(创建)转义字符字符串拼接字符串复制常见操作1. 获取长度2. 查找内容3. 判断4. 计算出现次数5. 替换内容6. 切割字符串7. 修改大小写8. 空格处理9. 字符串拼接10. 加密解密(映射替换)11. 字符串前补0切片(slice)字符串驻留机制可变字符串字符串基本特点字符串的本质是:字符序列。Python的字符串是不可变的。Python不支持单字符类型,单字符也是作为一个字符串使用的。编码Python3直接支持Unicode,可以表示世界上任何书面原创 2020-06-04 20:07:41 · 2204 阅读 · 26 评论 -
Python-字典中的所有方法及用法
1. setdefault使用# 有则不变,无则增加dic1 = {'name': 'lucy', 'age': 18}dic1.setdefault('age', 45) # {'name': 'lucy', 'age': 18}dic1.setdefault('sex', '男') # {'name': 'lucy', 'age': 18, 'sex': '男'}2. pop使用# 按照键删除键值对,有返回值# 如果设置了第二个参数则无论字典中有无此键都不会报错dic2 = {'n原创 2020-05-18 20:09:14 · 2348 阅读 · 0 评论 -
Python中创建字典的五种方式
# 字典的创建方式# 方式一 {key: value}dict1 = {'one': 1, 'two': 2, 'three': 3}print(dict1)# 方式二 dict(zip(keys, values))# dict([(k, v), (k, v)])dict2 = dict([('one', 1), ('two', 2), ('three', 3)])print(dict2)# dict(((k, v), (k, v)))dict3 = dict((('one', 1),原创 2020-05-18 19:14:31 · 4905 阅读 · 2 评论 -
Python中名称空间(命名空间)与作用域介绍
一、名称空间(命名空间)内置名称空间存放的是一些内置函数,比如input,print,list,len等。全局名称空间存放的是当前py文件中(除去函数、类内部的)变量与值的对应关系以及函数名与函数的内存地址的对应关系。局部(临时)名称空间存放的是函数内部的变量与值的对应关系。当一个函数被调用时,开辟临时名称空间,当函数执行结束后,临时名称空间消失。如果一个函数被调用...原创 2020-03-13 20:02:35 · 642 阅读 · 0 评论 -
Python中迭代器的用法
迭代器可迭代对象对象:python中一切皆对象。一个实实在在存在的值就叫对象。比如:a = 1, a就叫对象。可迭代:更新迭代。重复的、循环的一个过程。更新迭代每次都有新的内容。字面意思:可以进行循环更新的一个实实在在的值。专业角度:内部含有__iter__方法的对象称之为可迭代对象。获取对象的所有方法并且以字符串的形式表现:dir()# 获取一个对象的所有方法s1 = ...原创 2020-03-08 13:24:15 · 1030 阅读 · 0 评论 -
Python中闭包的用法
闭包闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数块+引用环境)。def outer(n): num = n def inner(): return num + 1 return innerprint(outer(3)()) # 4print(outer(5)()) # 6在这段程序中,函数 inner 是函数 oute...原创 2020-03-07 20:39:01 · 731 阅读 · 0 评论 -
Python项目:学生管理系统(手把手教程)
如需源码,评论区留下邮箱文章目录如需源码,评论区留下邮箱前言1. 结构搭建index.pyfile_manager.py2. 退出功能实现3. 注册功能实现index.pyfile_manager.pymodel.pytools.py4. 登录功能实现index.pystudent_manager.py5. 添加学生功能实现student_manager.pymodel.py6. 查找学生功能实...原创 2020-03-05 00:59:24 · 2282 阅读 · 32 评论 -
Python中高阶函数详解
高阶函数在Python中,函数其实也是一种数据类型。def test(): return 'hello world'print(type(test)) # <class 'function'>函数对应的数据类型是 function,可以把它当做是一种复杂的数据类型。既然同样都是一种数据类型,我们就可以把它当做数字或者字符串来处理。定义一个变量指向函数在Pyth...原创 2020-03-01 20:41:57 · 835 阅读 · 0 评论 -
Python中sorted函数、filter类、map类、reduce函数
文章目录sorted函数一、sort方法二、sorted内置函数三、情景引入filter类一、简单使用二、练习map类语法:一、简单使用二、练习reduce函数语法:一、简单使用二、设置初始值Python中使用函数作为参数的内置函数和类:函数名或类名功能参数描述sorted函数用来将一个无序列表(元组)进行排序函数参数的返回值规定按照元素的哪个属性进行排序fil...原创 2020-03-01 14:25:44 · 957 阅读 · 0 评论 -
Python中文件操作相关知识(超详细)
文章目录一、文件的打开和关闭二、文件的读取和写入三、实现文件拷贝功能四、CSV文件的读写五、将数据写入内存六、sys模块的使用七、序列化和反序列化JSON模块pickle模块JSON与pickle区别一、文件的打开和关闭open()函数f1 = open(r'd:\测试文件.txt', mode='r', encoding='utf-8')content = f1.read()pri...原创 2020-02-27 23:04:08 · 3335 阅读 · 1 评论 -
图解Python中深浅copy(通俗易懂)
一、深浅copy赋值运算l1 = [1, 2, 3, [22, 33]]l2 = l1l1.append(666)print(l1) # [1, 2, 3, [22, 33], 666]print(l2) # [1, 2, 3, [22, 33], 666]图解:注意:l2 = l1是一个指向,是赋值,和深浅copy无关。浅copy其实列表是一个一个的槽位,每...原创 2020-02-27 10:32:25 · 3602 阅读 · 50 评论 -
python中单例设计模式
一、关于__new__和__init__方法class A(object): def __init__(self): print("这是 init 方法") def __new__(cls): print("这是 new 方法") return object.__new__(cls)A()# 这是 new 方法# 这是 ...原创 2020-02-26 00:20:25 · 441 阅读 · 0 评论 -
Python中的实例方法、类方法、静态方法
一、实例方法(对象方法)类中的方法默认都是实例方法。class Person(object): type = 'human' def __init__(self, name, age): self.name = name self.age = age def eat(self, food): # 实例方法有一个参数self,指的...原创 2020-02-26 00:05:17 · 1128 阅读 · 0 评论 -
Python中类属性、对象属性、私有属性和私有方法
一、类属性类属性就是类对象所拥有的属性,它被该类的所有实例对象所共有。类属性定义在类中,函数之外。类属性可以通过类对象和实例对象获取。即类名.类属性和实例对象.类属性class Person(object): type = '人类' # 这个属性定义在类里,函数之外,我们称之为类属性 def __init__(self, name, age): self...原创 2020-02-25 22:30:09 · 1737 阅读 · 0 评论 -
Python的内置类属性
一、__slots__类中没有__slots__属性时,可以进行动态添加属性class Person(object): def __init__(self, name, age): self.name = name self.age = agep = Person('lucy', 18)p.city = '上海'print(p.city) ...原创 2020-02-25 20:56:32 · 1387 阅读 · 0 评论 -
Python中魔法方法(__init__、__del__、__str__、__repr__、__call__、__eq__等)
一、魔法方法特点不需要手动调用,会在合适的时机自动调用这些方法,都是使用 __ 开始,使用 __ 结束方法名都是系统规定好的,在合适的时机自己调用二、__init__方法class Student(object): def __init__(self, name, age): # 重写了__init__方法 self.name = name ...原创 2020-02-25 01:04:05 · 1435 阅读 · 1 评论 -
Python中self详解
一、概念哪个对象调用了方法,方法里的self指的就是谁。通过 self.属性名 可以访问到这个对象的属性。通过 self.方法名() 可以调用这个对象的方法。class Student(object): def __init__(self, name, age): self.name = name self.age = ages1 = Stud...原创 2020-02-24 22:18:43 · 1999 阅读 · 0 评论 -
Ubuntu 18.04.1中安装Python3并设置为默认
一.安装Python3首先在终端中输入pip,若提示程序尚未安装,则执行以下命令sudo apt install python-pippip安装完成后,开始安装Python3,执行以下命令sudo apt install python3-pip安装完成后验证是否安装成功,输入python3即可二.将Python3设置为默认未进行设置之前,在终端中输入python,...原创 2019-10-04 21:01:16 · 1033 阅读 · 0 评论