首页 > 文库 > 2021 年你应该学会的 5 个 Python 小技巧
2021 年你应该学会的 5 个 Python 小技巧
作者:神译局  2021-01-30 12:25:12  共1803人围观

Python语言正在发展,你Out了吗?


编者按:近年来,Python已经取代Java成为高校中最受欢迎的编程语言,甚至还有许多不做编程工作的人士,也在开始在学习Python语言,来实现网络爬虫以及辅助投资理财等目的。这篇文章,原标题是5 Python Tricks You Should Start Using in 2021,作者Roman Orac在文章中跟大家分享了5个Python小技巧,希望对你的工作和学习有所帮助。

图片来源:Pexels.com

我们已经走进了2021年。新的一年,大家都有新年目标。对大多数人而言,更好地学习和运用Python语言,也应该成为其最实用的新年目标之一。

在这篇文章中,我将跟大家分享5个Python小技巧。掌握这些小技巧后,你的生活也会变得更加简单。

懒人目录

  • 如何更清楚地格式化大整数?

  • IPython中的魔法命令是什么?

  • 调试代码的简单方法

  • 处理文件路径的更佳方法

  • 字符串格式化的正确方法

1.  数值常量中的下划线

在数值常量中使用下划线。图片来源:Roman Orac

从Python 3.6版本开始,你都可以通过添加下划线“_”的方式,让数字更具可读性。

例如:

a = 1000000000

# 这个变量是十亿还是一亿?

 

# 让我们借助下划线来更简单地认识这个数字

a = 1_000_000_000

 

# 你可以按照自己的方式给数字分组

b = 1_0_9_0

 这种方式也能用来处理十六进制地址和分组比特。

# 用字来分组十六进制地址

addr = 0xCAFE_F00D

 

# 在二进制常量中将比特分组成半字节。

flags = 0b_0011_1111_0100_1110

2.  IPython中的魔法命令

通过%paste命令把代码粘贴到IPython解释器中。图片来源:Roman Orac

我在用Python开发时,在工作流程中,我会将neovim的终端面板放在左边, IPython解释器放在右边。

由于我可以从左边将代码复制出来,然后直接粘贴到右边的解释器上,这也让代码测试变得更加容易。

什么是IPython解释器?

它类似于Python解释器,不过功能更加强大。

IPython是用多编程语言来交互计算的命令外壳,最开始是专为Python编程语言而开发的。同时,它还提供了内省,丰富的媒体,shell语法,tab自动补全,以及历史命令查看等内容。

将代码从剪贴板粘贴到IPython解释器的最简单方法是什么呢?

你知道IPython支持魔法命令吗?

魔法命令其中就包括%paste命令,它可以将剪贴板上的代码连同格式一起粘贴。

要使用这个命令,你只需要在IPython解释器中键入%paste即可。

3.  调试Python代码

使用IPDB调试Python代码。图片来源:Roman Orac。图示高亮工具:Carbon.sh

PyCharm编辑器拥有用于Python代码的内置调试器。不过,如果你使用的是Visual Studio Code,Atom,Sublime或者Vim编辑器的话,又该怎么办呢?

你可以使用pdb模块:

foo()

 

import pdb; pdb.set_trace()

# 代码运行到这里会暂停,然后会启动解释器

 

bar()

Python3.7及以上的版本可以调用内置的breakpoint()函数来简化这一点:

foo()

 

breakpoint()

# 代码运行到这里会暂停,然后会启动解释器

 

bar()

4.  路径处理库Pathlib

图片来源:Alice Donovan Rouse on Unsplash

处理路径极具挑战,特别是代码需要在多个操作系统上运行的情况下。

不过,幸运的是,Python标准库中有pathllib这个路径处理库。

让我们看一个例子:

from pathlib import Path

 

path = Path("some_folder")

print(path)

# 输出:some_folder

 

# 我们可以通过一种可读的方式添加更多子文件

path = path / "sub_folter" / "sub_sub_folder"

print(path)

# 输出:some_folder/sub_folter/sub_sub_folder

 

# 让路径绝对化

print(path.resolve())

# 输出:/Users/r.orac/some_folder/sub_folter/sub_sub_folder

 

5.  简化字符串格式化

Python中的f-string格式化。图片来源:Roman Orac

 我习惯于在Python中使用老派的字符串格式化:

person = 'Roman'

exercise = 0

print("%d-times %s exercised during corona epidemic" % (exercise, person))

 

# 输出:0-times Roman exercised during corona epidemic

直到前不久,我才知道Python中有一种更好的(更现代的)字符串格式化方式。

在Python3.6版本中,PEP 498提出了Literal String Interpolation字符串插值,从而简化了字符串格式化。

对于上述例子,我们可以重写如下:

person = 'Roman'

exercise = 0

 

print(f"{exercise}-times {person} exercised during corona epidemic")

 

# 输出:0-times Roman exercised during corona epidemic

以f为前缀的字符串即被称为fstring。

fstring甚至可以支持数学运算:

print(f"{exercise+1}-times {person} exercised during corona epidemic")

 

# 输出:'1-times roman exercised during corona epidemic'

然而,在新冠疫情期间,我并没有运动。所以用fstring+1,并不是真的。

文章列表

关于We AI school


We AI school 中国人工智能学校,是一个人工智能/AI学习分享网站,平台收录了人工智能领域的新闻资讯,以及技术文章分享给大家,让更多的人了解人工智能行业。
联系方式:13817964035(微信同号)合作邮箱:171920374@qq.com
地址:中国上海市青浦区徐泾东盈港东路1529弄18号

微信公众号

扫码关注
©2021 思南领氪网络工作室 黔ICP备2021000736号