为了更好的代码:12个Python小窍门
全文共2015字 , 预计学习时长8分钟

文章图片
图源:unsplash
使用和学习Python的人不在少数 , 但是真正掌握了解这门语言的人并不多 。 你了解最新的Python功能和技术吗?这12个小技巧能帮助你提高代码质量 。
1.F-Strings
F-Strings提供了一种简便的方法 , 可以将Python表达式嵌入字符串文本中进行格式化 。 首先 , 定义print语句中的会用到的两个变量:name和age 。
name="Pavel"age=23
为了不处理字符串连接或在print语句中使用逗号 , 可以使用Python3.6升级版字符串格式化法“f-Strings” 。 只需在大括号内有变量或表达式的字符串前面放一个小写或大写字母“f”即可 。

文章图片
F-Strings是一种很棒的格式化字符串新方法 , 此法得出的结果可读性更强、速度更快、格式更简洁、更不容易出错 。
2.查找任何对象的大小
默认的sys模块包含一个getsizeof函数 , 该函数接受一个对象并以字节为单位返回其大小 。 该对象可以是任何类型 。 例如:

文章图片
仅计算直接归因于该对象的内存消耗 , 而不计算它所指对象的内存消耗 。 再来看另一个例子:

文章图片
3.原地交换变量
在许多其他编程语言中 , 只有通过定义一个额外的temp(临时)变量才能交换两个或以上变量的值 。 假设想交换x和y:
temp=xx=yy=temp
【为了更好的代码:12个Python小窍门】Python用一种简单的单行结构来交换变量 , 类似于将值赋给一行中多个变量的概念 。 以下代码与上面代码相同 , 但没有使用任何临时变量:

文章图片
4.比较运算符的链接
通常要检查两个以上的条件时 , 必须使用逻辑运算符 , 例如and/or:
ifa<bandb<c:
在Python中 , 有一种更好的方法可以使用比较运算符链接来编写它 。 运算符的链可写为:
ifa<b<c:
例如:

文章图片
5.列表理解
列表理解是更常用、更巧妙的列表制作方式 。 不需要创建空列表并将每个元素添加到末尾 , 只需按照以下格式同时定义列表及其内容:
new_list=[expressionforiteminiterable(ifconditional)]
例如:

文章图片
另一个例子(有条件):

文章图片
6.字符串乘法
在Python中 , 不仅可以乘以数字 , 还可以乘以字符串 。 例如:

文章图片
7.在一行中分配多个变量
可用逗号分隔变量和值 , 从而把多个值分配给各个变量:

文章图片
这在对序列(例如列表或元组)解构/解包时也同样适用 , 并且是将序列的元素更巧妙地分配给各个变量 , 因为不需要使用循环或单独索引序列中的每个元素 。
8.参数解包
当需要对列表或元组中的参数进行解包以进行需要单独位置参数的函数调用时 , Splat或Scatter运算符*有时能发挥作用 。
例如 , 内置的range()函数需要单独的开始和停止参数 。 编写函数调用时 , 可以使用*运算符将参数从列表或元组中解包:
让我们定义一个简单的列表:x=[1,2,3,4,5] 。
解包运算符的一个常见示例是使用print:
print(*x)//Result:12345
这只是打印出列表中的每个元素 , 这些元素以空格分隔 , 因为解包运算符接受了列表中的所有元素 , 并将它们作为参数传递 , 因此上面代码转换成print(1,2,3,4,5) 。
这个Python技巧在函数中经常使用 , 以将方法调用接收到的所有参数‘打包’到单个变量中 。 例如:

文章图片
上面的函数func可以接受无限数量的参数(args[0]和args[1]将分别提供第一个和第二个参数) 。
以类似的方式 , 字典可以使用**运算符传递关键字参数 。 来定义一个名为person的Python字典:
person={"name":"Paul","age":23,"location":"London
推荐阅读
- 科学探索|毒性更小:氧化铈纳米颗粒或成蛀牙克星
- 挺过上半年疫情冲击,中国电竞行业为啥更红火了?
- 贺子秋|以家人之名一周更新几集 以家人之名更新时间最新剧情全集观看
- 袁心玥是不是中国女排之中身材最好的球员?你怎么看?
- 孟晚舟|孟晚舟引渡案再次开庭 辩方律师申请公开更多证据
- 阳台这样布置,更休闲有品味
- 补水眼霜哪个牌子好用 十大口碑好的补水保湿眼霜推荐
- 人民日报海外版|起点更高特色更强 第五批自贸区这一年咋样了?
- 全球保湿水品牌排行榜 口碑最好的保湿水推荐
- 美俄突然举行联合军演,是在释放什么信号?绝非为了大选那么简单
