【导读】2021年,你又立了什么新的 Flag?新一年,我们先为大家准备 30 个非常优秀的 Python 实践技巧。希望这些诀窍能在实际工作中帮助大家,并且学到一些有用的知识。

1、使用 python 3
由于官方从2020年1月1日起就停止了对python2.7的更新支持,因此本教程的大部分例子都只能在python 3环境下运行。如果你仍然在使用2.7版本,请先升级到python 3。

2、检查并使用满足需求的最小python版本
你可以在代码中检查Python 版本,以确保你的代码使用者没有使用不兼容的版本运行脚本。使用以下代码进行简单的检查:

3、使用IPython

IPython 基本上是一个增强的shell,仅仅是为了自动补全功能,IPython也是值得使用的,但其实它还有更多作用,包括内建的Magic命令,这里列举了一些:

  • %cd:改变当前的工作目录
  • %edit:打开编辑器并在关闭编辑器后执行键入的代码
  • %env:显示当前的环境变量
  • %pip:install [pkgs] 在不离开交互式shell的情况下安装功能包
  • %time 和 %timeit:类似于python中的time模块,可以为代码运行计时

IPython的另一个有用功能是可以使用之前任意一行代码的输出,代码的输入和输入实际上都是对象,例如可以通过 Out[3] 来使用第三次运行代码的输出对象。安装IPython的指令是:

pip3 install ipython

4.列表解析式
列表解析式可以用来替换通过loop来填充列表的丑陋方法,其基本语法是:

[ expression for item in list if conditional ]

一个非常基础的例子,用于生成包含连续数字的列表:

由于可以使用表达式,因此可以通过更复杂的数学方法来生成列表:

甚至也可以调用外部函数:

最后,也可以用if作为生成条件来对列表进行过滤。在下面的例子中,只有偶数被保留:

5、检查对象的内存占用情况
通过sys.getsizeof(object)命令可以查看任何对象的内存使用情况:

这是因为range函数返回的是一个类对象,这个类对象表现为一个列表。因此使用range函数比使用实际的包含一万个数字的列表要更加节省内存。可以通过上面第四条中提到的列表解析式创建一个同样大小的实际列表:

实际内存占用87632字节,远高于通过range函数生成的对象。

6、返回多个值
Pyhon中的函数都可以返回多个变量,而不需要字典,列表或者类作为返回对象。方法如下:

对于有限数量的返回值,这是可以的。但是任何超过3个值的内容都应该放到一个(data)类中。

7、使用 data 类
从3.7版本开始,python提供了 data 类。与常规类或其他替代方法(如返回多个值或字典)相比,有以下几个优点:

  • 数据类需要至少一定数量的代码
  • 可以通过 eq 方法来比较不同的data类对象
  • 可以 repr 通过很容易地打印一个数据类来进行调试
  • 数据类需要类型提示,因此减少了 bug

一个data类的例子如下:

8、就地变量交换
一个简洁的技巧,可以节省几行代码:

9、字典合并(Python 3.5+)
从python 3.5开始,字典的合并变得更简单了:

10、将字符串转化为标题格式
在标题格式中,非介词的首字母会大写。可以通过.title方法实现:

11、将字符串分离并存储到列表中
可以按任意字符来分割字符串,并存储到列表中,例如按空格来分割字符串:

12、将列表中的字符串合并到一起
与上一条的功能正好相反,从列表中创建字符串,并在两个单词间插入空格:

也许你会疑惑,为什么不使用mylist.join(" ")呢?归根结底,String.join函数不仅可以连接列表,还可以连接任何可迭代的列表。将它放在String中会阻止在多个位置实现相同的功能。
13、Emoji

这些表情具有很强的表达能力,能给人留下深刻印象。更重要的是,这在分析社交媒体数据时尤其有用。首先通过以下命令安装emoji模块:

pip3 install emoji

可以按照以下方法使用表情:

14、列表切片操作
列表切片的基本语法是:

a[start:stop:step]

start,stop和step都是可选的(可填可不填),默认值是:

  • start:0
  • stop:列表的末尾
  • step:1

一些例子如下:

15、翻转字符串和列表
可以用切片操作来翻转列表或字符串,将step设置为负值即可实现:

16、图片显示
可以通过Pillow模块来显示图片,例如显示Kitty小猫,首先安装python图片库:

pip3 install Pillow

然后下载你要显示的图片,并重命名。然后可以通过以下命令来显示图片:

或者也可以直接通过IPython来显示:

Pillow的功能远不止显示图片。它可以对图片进行分析,调整大小,滤波,增强,变形等等。

17、使用map函数
Python的一个内建函数是 map。map的基本语法是:

map(function, something_iterable)

传入的参数是一个函数,和一个需要执行的对象,可以是任何可迭代对象。在下面的例子中使用的是list:

map是一个代替循环的好方式,可以在你的代码中尝试使用map函数。

18、从列表或字符串中获取唯一元素
通过set函数可以将列表或字符串转换为集合,集合中的不含重复元素:

19、找出最常出现的值
查找列表或字符串中最常出现的值:

你可以尝试自行理解上述代码。好吧,也许你并没有尝试。上述代码的工作原理如下:

  • max将返回列表中的最大值。key参数接受单个参数函数确定定制排序顺序,在本例中,它是test.count,该函数应用于iterable对象中的每个元素。
  • .count是列表的一个内建函数,该函数接收一个参数,并计算该参数的出现次数。因此在本例中,test.count(1)返回2,testcount(4)返回4。
  • set(test)返回test列表中的所有唯一值,因此是{1,2,3,4}。

因此在上面的这行语句中我们首先找出了test列表的所有独特值,即{1,2,3,4}。接着,将.count函数应用于set中的每个值,得到一个数量列表,然后通过max找出数量最大的值。

20、创建进度条
可以自行创建进度条,但也可以通过progress模块来快速创建:

pip3 install progress

然后通过以下代码来创建进度条:

效果如下:

21、在交互式shell中使用用 _ 来获取上一个表达式的运行结果可以使用下划线操作符来获取最后运行的表达式的输出,在IPython中操作如下:

这种方法在python shell中也是适用的,IPython还可以通过Out[n]来获取任意第n个表达式的输出结果。

22、快速创建web服务器
您可以快速启动web服务器,来提供当前工作目录的内容:

python3 -m http.server

如果您想与同事共享一些内容,或者想测试一个简单的HTML站点,这是非常有用的。

23、多行字符串

虽然可以使用三重引号在代码中包含多行字符串,但这并不理想。在三重引号之间的所有内容都变成字符串,包括格式。相比我更喜欢第二种方式,它将多行连接在一起,允许你很好地格式化代码。惟一的缺点是需要显式地放入新行:

24、用于条件赋值的三元运算符这是另一种使你代码变得简洁,同时保持可读性的方法:

[on_true] if [expression] else [on_false]

一个简单的例子如下:

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

25、统计元素的出现次数
可以使用Collections依赖包中的Counter方法来获得一个包含列表中所有惟一元素计数的字典:

26、比较运算符的连接可以在python中链接比较运算符,从而使代码更简洁,可读性更强:

27、加入色彩

通过 Colorama 依赖包,可以在终端中添加更多色彩:

28、日期处理
python-dateutil模块为标准的datetime模块提供了强大的扩展。首先安装该模块:

pip3 install python-dateutil

你可以用这个库做很多很酷的事情。我讲把我认为特别有用的一个功能作为示例:日志文件中日期的模糊解析等。如下:

只要记住,如果datatime不具备某个功能,那datautil一定有该功能,datautil是datatime功能的延续。

29、整除
在Python 2中,除法运算符(/)默认为整数除法,除非其中一个操作数是浮点数。如下:

很多小伙伴在学习Python的过程中往往因为没有资料或者没人指导从而导致自己不想学下去了,因此我特意准备了大量的PDF书籍、视频教程,都免费送给大家!不管你是零基础还是有基础都可以获取到自己相对应的学习礼包!

在python3中,除法运算符/默认为浮点除法,//运算符变成了整数除法。所以有:

30、通过chardet检测字符集合
可以使用chardet模块来检测文件中的字符集合。这在分析大量随机文本时非常有用。安装chardet模块:

pip install chardet

现在你有了一个额外的命令行工具chardetect,它可以这样使用:

你也可以通过编程的方式来使用这个依赖包,以上就是30个python的技巧,希望这些技巧能帮助你在新的一年里有个不错的开始。

python福利教程领取方式:
1、点赞+评论(勾选“同时转发”)
2、关注小编。并私信回复关键字【19】
(一定要私信哦~点击我的头像就能看到私信按钮了)

非常实用的三十个Python技巧,我都一一实践过了相关推荐

  1. 赶紧收藏!非常实用的 30 个 Python 技巧

    Python 是机器学习最广泛采用的编程语言,它最重要的优势在于编程的易用性.如果读者对基本的 Python 语法已经有一些了解,那么这篇文章可能会给你一些启发.作者简单概览了 30 段代码,它们都是 ...

  2. Pyinstaller打包python文件太大?教你三个小技巧有效减小文件体积

    简介 有时候需要在未安装Python环境的平台上运行py程序,使用pyinstaller打包很方便,但打包后的可执行文件实在是太大了.原因在于打包时pyinstaller本就已经关联了很多的pytho ...

  3. Python二十个小技巧

    本文为大家介绍20个值得记住的 Python 技巧,可以提升您编程技巧, 并为您节省大量时间. 在平常编程过程中,以下技巧大多非常有用. 1 字符串反转 使用切片反转字符串. str1="q ...

  4. 程序员必知的20个Python技巧

    作者 | Duomly 译者 | 弯月,编辑 | 郭芮 出品 | CSDN(ID:CSDNnews) Python是一门流行且应用广泛的通用编程语言,其应用包括数据科学.机器学习.科学计算等领域,以及 ...

  5. 响应式设计的十个基本技巧

    为什么80%的码农都做不了架构师?>>>    Responsive Design对于我来说一点都不陌生,从他在这个互联网出现的时候,就一直在观注他的成长,而且在w3cplus站上也 ...

  6. python初学者_面向初学者的20种重要的Python技巧

    python初学者 Python is among the most widely used market programming languages in the world. This is be ...

  7. 程序员必知的 20 个 Python 技巧!

    本文将向你展示20条非常实用的Python使用技巧. 作者 | Duomly 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python是一门流行且应用广 ...

  8. 6个超酷的 Python 技巧

    欢迎关注 "小白玩转Python",发现更多 "有趣" 近年来,数据科学经历了巨大的发展.作为数据科学领域中最常用的编程语言,Python 也越来越受欢迎. 在 ...

  9. 你需要知道的20个常用的Python技巧

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法那些事 Python的可读性和简单性是其广受 ...

最新文章

  1. 一个模型搞定图像标注、读图问答两件事,VQA准确率逼近人类水平 | Demo可玩...
  2. html中和over怎么显示div,js 解决隐藏与显示div的相关问题
  3. Spring mvc ViewResolver视图解析器实现机制
  4. QT的QReadLocker类的使用
  5. 一次mysql大数据量查询 慢查询导致服务阻塞后的学习
  6. 算法设计与分析 自创O(n)排序算法 适用于任何有理数
  7. 二叉树的基本特性和二叉树的几种基本操作的机制_深入理解二叉树01 二叉树基础
  8. 延长天文学家寿命的发现——纳皮尔发现对数
  9. git serialtool_Git学习笔记---协作的一般流程
  10. Windows网络编程:阻塞模式下的Socket编程
  11. pytorch 使用netron可视化
  12. 使用win7 快捷键
  13. 姚舜:成年人的崩溃,“我只是想哭一下”
  14. Android桌面小插件——Widget
  15. 春风吹又生(1年工作经验感悟)
  16. 烟沙浮生 | 曾几何时,还是游吟长安的醉客
  17. 所见所得的OFFICE功能区编辑器(自定义界面编辑)RibbonCreator
  18. 算法设计-利用栈判别表达式中的括弧是否配对
  19. csgo 机器人模式_csgo怎么单机跟电脑打只有每队5人,怎么增加BOT
  20. 虚拟化VMware简介6——VMotion 简介

热门文章

  1. time 和 Timer
  2. Time.deltaTime 的含义用法
  3. window编译php,php windows 编译
  4. 原生js html insert,原生js添加节点appendChild、insertBefore
  5. dy、ks高版本数据抓包-quic协议解决方案
  6. linux火车游戏下载,列车驾驶模拟器3D
  7. 走过,路过,不要错过!经典语录全集!
  8. Linux【vim】【gcc/g++】【make/Makefile】
  9. oracle数据库主键自增序列_Oracle数据库主键自增
  10. 找到当月的休息日(Java)