news 2026/8/27 20:50:29

Python2 已终结,入手Python 3,你需要这30个技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python2 已终结,入手Python 3,你需要这30个技巧

有着那样一个具备实用价值的功能存在, 在于做出把先前的命令输出给进行调用这样的相关操作, 在此身处地方的输入以及输出确实实际上都是对象, 就好像举例来说, 你能够采用Out去将第三条命令的输出从当中抽取调出来。

你可以用下面这条命令安装 :

pip3

4. 列表表达式

一旦拥有了列表表达式, 你便无需再借助for loop去缔造一个list。它的基本语法呈现这般状态。

for item in list if

这就是一个生成包含一串数字的 list 的简单例子。

这条命令之中, 还能够运用表达式(), 因而也能够开展一些数学运算:

你甚至可以调用一个外部函数:

最后, 你同样能够于生成 list 的时候, 运用 if 语句来实施筛选。在下面的这个例子里头, 我们仅仅留存了能够被 2 整除的那些值:

5. 检查你的对象占用了多少内存

你能够运用sys.()去查看你所创建的对象占据的内存层面大小, 通过此类方式:

哇,等一下,为什么这么大的 list 只有 48 字节?

之所以这样, 是由于range函数仅仅返回了一个类似list的类别。从这能够看出来, 和直接运用list相比较而言, 运用range能够节约好多空间:

6. 返回多个值

能返回多个值的函数, 并不用借助list之类的数据结构, 也无需使用类, 这种函数有着这样的工作机制, 是这样的。

这种方式, 在返回值数量极少的时候, 是可行的, 然而, 一旦返回值超过了3个, 那么, 它们就应当被放置于一个(数据)类之中了。

7. 使用数据类

自 3.7 起开始给出数据类功能, 此功能同常规的类, 以及别的类似功能, 也就是返回多个值的那类函数相比较,存在以下优势:

数据类型有最低代码量要求

因为数据类已经自带了功能,故而你可以直接进行数据类的对比

数据类自带,你也可以直接在 debug 时打印出一个数据类

数据类型需要你输入提示,这样 bug 量会大大减少

下面展示了一个实用的数据类例子:

想更深入的了解数据类,可以参考:

8. 在位置不变的情况下交换变量

一个小技巧就可以减少很多行代码:

9. 合并 ( 3.5+)

从 3.5 开始, 的合并变得更容易了:

若出现有重复的 key, 那么, 第一个词典里的这个 key 与之对应的那个值, 将会被覆盖掉。

10. 把字符串变成标题形式

这只是 中的宝藏之一:

11. 把字符串分割成 list

你将能把一个字符串划分成为一个 list 的字符串, 于下述的例子里, 我们是以空格来划分字符串的:

12. 将一个字符串列表变成一个字符串

将上一个小技巧进行相反处理, 有这样一种情况, 我们能够将一个 list变为一个字符串, 且在每个词的中间位置插入空格。

你可能在想为什么不用

.join(" ")

好问题!

这是由于, .join()具备连接任何可迭代对象之能力, 并非仅仅局限于列表。于其中运用此函数, 能够避免这些操作, 出现在我们所不欲其出现之处。

13. Emoji

有些人对这个功能怀有喜好之情, 而有些人却对此极为抗拒, 这会因不同的人而有所不同。严格来讲, 这个功能所具备的主要益处在于, 在针对社交数据展开分析之际能够变得更为便利。

首先,你要安装 emoji 模块:

pip3 emoji

安装完后,你可以像下面这样使用这个模块:

想要更深入的了解 emoji 模块,可以参考:。

14. list 切片

list 切片的基本使用形式如下:

start:stop:step

启始, 终止以及步长, 全都是能够随意选择的参数。要是你并未进行定义, 那么它们将会依照如下这般的规则来分派默认的数值:

start = 0

end = 方括号里面字符串的最后一个字符

step = 1

15. 翻转字符串和 list

对于字符串以及 list, 你能够运用方才所提及的切片操作予以翻转。当把 step 设置为 -1 时, 如此便能够达成翻转操作。

16. 展示小猫的图片

我终于, 还是有了这样的发现, 即存在一个能够在我所撰写的文章当中提及小猫的机遇!当然, 你也有可能是借助这个功能去呈现其他的图片。首先, 你得进行安装, 它属于Image库的一个分支:

pip3

现在把这个图像下载下来并命名为 .jpg:

图源: 的

你可用下面这段 代码来显示图像。

或者你可以直接在 上做这件事。

所能做到的可不单纯只局限于此, 它能够针对图片来推进分析、实施裁剪、予以过滤、达成增强、进行变形之类操作, 要是期望更为深入地去知晓明白, 那就能够去瞧一瞧它的文档:

17. 使用 map()

的内置函数之一就是 map()。map() 的语法如下:

所以, 你能够给它一个函数用以让其执行, 接着还得传递给它相应的参数。这个参数能够是任何可进行迭代的对象。在如下的例子当中, 我运用了 list:

快速地去瞧一瞧你的代码, 是不是有的地方能够使用map()而并非用loop!

18. 从 list 或是 中获取 元素

你能够运用set()去获取list当中或者接近list的对象的元素, 最终通过返回形成一个set。

19. 找到高频值

在 list 或字符创中获取高频值:

max() 会返回 list 当中的最高值, 而 key 能够借助一个输入(诸如本例里的 test.count)来明确你所要排序的方式, 这个函数会应用于先前可迭代对象的每一项。

list 的内置函数是 test.count , 我们给予它一回输入, 它会对那个输入露面的次数予以统计, test.count(1) 便会返回 2, test.count(4) 便会返回 4。

对(test)进行设置, 将会返回相应的值, 此值具体就是{1, 2, 3, 4}。

所以, 这一行代码要做的事情是什么, 是先去找到所有的值是哪些, 是{1, 2, 3, 4}这些值, 之后, max这个又会怎样, max就会针对这四个值分别去进行list.count操作, 最后会返回什么, 会返回最大值。

20. 创建进度条

能够创建属于你自身的进度条, 其也是具备着相当趣味性的。然而直接去运用那个包, 速度方面则会快出许多:

pip3

现在你可以毫不费力的创建一个进度条了:

下面这个动画展示了所有可能的进度条类型:

图源: ,

21. 在交互 shell 中使用「_」

你可以用下划线来获得上一条命令的输入,在 中是这样的:

In : 3 * 3

Out: 9In : _ + 3

Out: 12

在 shell 里, 这条命令同样能够被使用, 在 shell 当中, 你也能够借助 Out 去获取 In 的输出结果, 举例来讲, 于上面所提及的例子里, Out 将会返回 9。

22. 快速创建一个网页服务器

你可以快速创建一个网页服务器,并将当前的路径作为内容:

-m http.

要是你打算跟你的同事去分享某些东西, 或者对一些简易的 HTML 网站进行测试, 那么这条命令是颇为有用的。

23. 多行字符串

纵然你能够于代码里借由三重引号(“ “ “ ” ” ”)去存储多行字符串, 然而这并非是理想之法, 你在三重引号之间的全部内容皆变成了字符串了, 如下方图示那般, 就连格式符也变成了字符串。

我相对更倾向于采用第二种方式, 这种方式能够将诸多行合并为一处,与此同时你的代码格式也会处于良好状态, 这个方法唯一存在的缺点便是你需要明确界定换行的位置。

24. 条件赋值的三元运算符

这是那些让你代码在保证可读性的情况下更简洁的方法之一:

if

else

实例如下:

x = "!" if (y == 2) else "!"

25. 统计出现数

你能够运用 库去获取 list里头各个 值的计数, 并且将其返回成为一个。

26. 比较符链( of )

这里, 你能够将比较符串联成一条链, 如此代码会具备更强的可读性, 并且会更加简洁。

27. 加一些色彩

中 的截屏

使用 ,你可以在你的终端上添加点颜色。

28. 日期计算

对于标准的那个模块, 此拓展模块进行了超级大的扩充, 先把这个模块下载一下:

pip3 -

你能够借助这个库去完成许多相当炫酷的事情!我仅仅会向你们讲述我所寻觅到的极为实用的一个实例, 即日志文件里日期的模糊解析之类的情况。

牢记这么一点, 当基本的日期函数在面对一些问题而陷入手足无措的境地之时, 此时, 就能发挥作用。

29. 整除

图源:公共源 -

二里面, 除法符号也就是斜杠, 默认情况下是整除, 要是其中有一个参与运算的数是浮点数的话那就是另外情况了。正因为此, 你才会收获这样的结果:

# 2

5 / 2 = 2

5 / 2.0 = 2.5

于3里, 除号所得结果默认作浮点数, 然而//却成了整除之符号, 故而此时结果变作了:

3

5 / 2 = 2.5

5 // 2 = 2

如果想要深入了解这一改变,请参考:。

30. 使用 检测

一个文件的检测你能够运用模块来进行。大量文本在接受分析期间 , 此模块会变得颇具效用。它可借由下面这条命令予以下载:

pip

你现在会有一个命令行工具——,这个工具的使用方式是:

.txt

.txt: ascii with 1.0

你可以以在程序中使用这个库,详见:

这就是所有的教程啦!希望大家喜欢这些技巧!

参考链接:

本文为机器之心编译,转载请联系本公众号获得授权。

加入机器之心(全职记者 / 实习生):

投稿或寻求报道:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 20:48:36

动态规划核心实现:备忘录法与自底向上法详解与实战

1. 项目概述:从“暴力”到“优雅”的必经之路如果你刷过算法题,或者在工作中处理过复杂的优化问题,那么“动态规划”这四个字对你来说,一定不陌生,甚至可能带着一丝又爱又恨的情绪。爱的是,它确实能解决那些…

作者头像 李华
网站建设 2026/8/27 20:47:30

【单片机毕设案例分享】基于 STM32 蓝牙通信的智能供水参数远程调控系统 基于 STM32 的传感器融合智能饮水设备控制系统设计(012105)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于单片机,STM32单片机,51单片机,J…

作者头像 李华
网站建设 2026/8/27 20:47:11

数学建模竞赛复盘:从综合评价到回归分析的全流程实战解析

1. 从“已完成”到“可复现”:华数杯C题深度复盘的价值 看到“2023华数杯C题已完成”这个标题,很多同学的第一反应可能是:哦,一篇分享答案的帖子。但如果你点进来,是想找一份可以直接“抄”的代码和论文,那…

作者头像 李华
网站建设 2026/8/27 20:46:15

26-CPU进程

进程 - 线程 进程:1.进程概念:程序:存放在外存中的一段代码的集合,不动的,只是一个文件进程:程序动态执行的过程,包括进程的创建、调度、消亡一个程序可以有多个进程,各种软件的多用…

作者头像 李华
网站建设 2026/8/27 20:45:16

少儿编程怎么选?

先说结论:别问"哪家最好",这个问题没有答案。 我从今年春天开始给孩子挑编程课,试听上了不少,销售电话接了一堆。前期完全是懵的——每家都说自己课程体系科学、师资强、能培养思维,听完全都一样。 后来我摸…

作者头像 李华