Effective Python:第8条 用zip函数同时遍历两个迭代器
摘要:用Python内置的zip函数来实现。这个函数能把两个或更多的iterator封装成惰性生成器(lazy generator)。每次循环时,它会分别从这些迭代器里获取各自的下一个元素,并把这些值放在一个元组里面。 names = ["Cecilia", "Lise", "Marie"] counts
阅读全文
Effective Python:第7条 尽量用enumerate取代range
摘要:Python有个内置的函数,叫作enumerate。enumerate能够把任何一种迭代器(iterator)封装成惰性生成器(lazy generator)。这样的话,每次循环的时候,它只需要从iterator里面获取下一个值就行了,同时还会给出本轮循环的序号,即生成器每次产生的一对输出值。下面通
阅读全文
Effective Python:第6条 把数据结构直接拆分到多个变量里,不要专门通过下标访问
摘要:使用拆分(unpacking),就可以把元组里面的元素分别赋给多个变量。 优点: 1,通过unpacking来赋值要比通过下标去访问元组内的元素更清晰,而且这种写法所需的代码量通常比较少。 2,便于原地交换两个变量; tb = [1, 2] tb[0], tb[1] = tb[1], tb[0] p
阅读全文
Effective Python:第4条 用支持插值的f-string取代C风格的格式字符串与str.format方法
摘要:Python里面最常用的字符串格式化方式是采用%格式化操作符。这个操作符左边的文本模板叫作格式字符串(format string)
阅读全文
Effective Python:第3条 了解bytes与str的区别
摘要:Python有两种类型可以表示字符序列:一种是bytes,另一种是str。bytes实例包含的是原始数据,即8位的无符号值(通常按照ASCII编码标准来显示)。str实例包含的是Unicode码点(code point,也叫作代码点)。 注意点: 1,bytes和str并不兼容。在传递字符序列的时候
阅读全文
Effective Python:第2条 遵循PEP 8风格指南
摘要:PEP8文档:https://peps.python.org/pep-0008/ 与空白有关的建议: 用空格(space)表示缩进,而不要用制表符(tab)。 和语法相关的每一层缩进都用4个空格表示。每行不超过79个字符。 对于占据多行的长表达式来说,除了首行之外的其余各行都应该在通常的缩进级别之上
阅读全文
Effective Python:第1条 查询自己使用的Python版本
摘要:命令行: python --version:通常可查看python2的版本; python3 --version:通常可查看python3的版本; 代码: import sys print(sys.version) #输出3.10.7 (v3.10.7:6cc6b13308, Sep 5 2022,
阅读全文
Effective Python:简介
摘要:作者:布雷特·斯拉特金 本书的大部分范例代码都遵循Python 3.7版本的语法规范,Python 3.7发布于2018年6月。另外,书里还会给出一些采用Python 3.8语法规范所写的范例,让大家能够看到一些新特性,Python 3.8发布于2019年10月。笔者不会在本书里讲Python 2
阅读全文
升级Django项目过程中问题记录
摘要:升级内容: python版本:3.8.4升到3.10.7 Django版本:2.2.13升到4.2 所遇问题: 1、 error in anyjson setup command: use_2to3 is invalid. pip3 install setuptools==57.5.0 # 降到58
阅读全文
python获取登录cookie
摘要:def sign(self): url = self.url + "/signin" data = { "username": self.username, "password": self.password, "login-submit": "登录" } session = requests.se
阅读全文
将非drf接口配置到swagger
摘要:近来在编写接口的过程中,发现非正常的drf接口,即使框架配置了swagger,也不展示;将发现的问题及解决方案记录,以免再次踩坑; 问题表现: def export_excel(request): pass 解决方案:增加@api_view()装饰器 方式1:直接通过注释进行描述 from rest
阅读全文
Django跨关联关系查询
摘要:正向查询: 多表查一表; 反向查询: 一表查多表 关联查询 多对多和一对多 正向查询: many1 = 多类名.objects.get() one_data = many1.关联属性 反向查询: one1 = 一类名.objects.get() many_data = one1.多类名小写_set.
阅读全文
python树状结构取值和加值
摘要:# 循环拿key为objkey的value值# data代表目标数据,objkey代表对应的key,store_data存储value,一般传[]def get_value(data, objkey, store_data): if isinstance(data, dict): for k, v
阅读全文
django中对模型字段名的限制
摘要:Django 对模型的字段名有一些限制: 一个字段的名称不能是 Python 保留字,因为这会导致 Python 语法错误。比如: class Example(models.Model): pass = models.IntegerField() # 'pass' is a reserved wor
阅读全文
python将日志生成到文件和控制台
摘要:# 日志收集设置import logging, osfrom logging.handlers import TimedRotatingFileHandlerimport datetimecurrent_dir = os.path.abspath(os.path.dirname(__file__))
阅读全文
python装饰器
摘要:装饰器:是一个以闭包形式的函数;在不改变现函数的的基础上增加其它功能。 格式:@装饰器函数名(外函数名) demo: import time # 调用时间模块 def count_time(func): # 外部函数 def wrapper(): # 内函数 start = time.time()
阅读全文