社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

18 种方法来优雅你的 Python

进击的Coder • 4 年前 • 335 次点击  

Python 讲求的一个目标就是 Pythonic,很多情况下我们会追求 Python 的代码更加优雅的写法。这里分享一篇文章,这里列举了非常全面的方法来优雅 Python 的写法,大家不妨试着用一用。

转载来源

公众号:Python 与算法之美

阅读本文大概需要 5 分钟。


一,优雅你的 Jupyter


1,更改 Jupyter Notebook 初始工作路径


平凡方法:

在cmd中输入jupyter notebook --generate-config,然后找到生成的配置文件 jupyter_notebook_config.py,在其中加入一条语句:


c.NotebookApp.notebook_dir =

 'F:我的坚果云PythonFiles' 


优雅方法:

新建文本文件,在其中输入以下内容:


F:

cd F:我的坚果云PythonFiles

jupyter notebook

pause


保存后将文件重命名为 jupyter.cmd,双击该文件即可。



2,获取函数帮助


平凡方法:

help()。

优雅方法:

光标移动至函数名右侧(或选中函数名),按住 Shift + Tab 键弹出帮助文本框。



3,修改多处的同一标识符名字


平凡方法:

逐个修改。


优雅方法:

按住 Ctrl 鼠标移动光标同时选中多处编辑位置,启动多行编辑。




二,优雅你的赋值语句


4,为多个变量赋值


平凡方法:

逐一赋值。



优雅方法:

使用元组语法同时赋值。



5,序列解包


平凡方法:

使用下标访问逐一赋值。



优雅方法:

序列自动解包。



6,对象方法的嵌套


平凡方法:

定义中间变量,不嵌套。



优雅方法:

使用对象方法嵌套,减少中间变量。



三,优雅你的判断语句


7,单行 if 语句:if...else... 三目运算符


平凡方法:

使用普通需要换行的 if...else... 语句。


优雅方法:

使用单行 if 语句:if...else... 三目运算符。


8,区间判断


平凡方法:

使用 and 连接两次判断。



优雅方法:

使用链式判断。

9,判断是否为多个取值之一


平凡方法:

使用 or 连接多次相等判断。




优雅方法:

使用关键字 in



10,判断是否为空列表,空字典,空字符串


平凡方法:

使用 len 函数判断长度是否大于 0。



优雅方法:

利用隐含类型转换直接判断



11,判断诸多条件是否至少有一个成立


平凡方法:

使用 or 连接多次判断。



优雅方法:

使用 any 函数。



12,判断诸多条件是否全部成立


平凡方法:

使用 and 连接多次判断。



优雅方法:

使用 all 函数。



四,优雅你的循环语句


13,单行循环语句:推导式


平凡方法:

使用普通 for 循环。


优雅方法:

使用推导式:[... for .... in ... if ... ]。



14,同时遍历序列的元素和元素下标


平凡方法:

遍历下标,并用下标访问元素。


优雅方法:

使用 enumerate 函数生成下标和元素对。



15,显示循环进度


平凡方法:

直接不断 print 下标。该方法容易导致输出刷屏。



优雅方法:

print 下标后设置不换行并使用‘ ’回车到行首以避免输出刷屏。



优雅方法加强版:

定义 progress_bar 函数,直观显示进度条。




五,优雅你的函数


16,使用 lambda 匿名函数实现简单的函数


平凡方法:

使用 def 关键字定义函数。



优雅方法:

使用 lambda 匿名函数。



17,使用 yield 生成器收集系列值


平凡方法:

在函数中直接用列表收集系列值。




优雅方法:

使用 yield 生成器收集系列值。生成器具有惰性计算特点,被迭代才逐个计算输出值。



18,使用装饰器给函数添加插入日志,性能测试等非核心功能


平凡方法:

将插入日志,性能测试等非核心功能直接内嵌到函数定义中。



优雅方法:

使用装饰器扩展函数的非核心功能。装饰器函数可以一次定义,到处装饰。




推荐阅读

1

跟繁琐的命令行说拜拜!Gerapy分布式爬虫管理框架来袭!

2

跟繁琐的模型说拜拜!深度学习脚手架 ModelZoo 来袭!

3

只会用Selenium爬网页?Appium爬App了解一下

4

妈妈再也不用担心爬虫被封号了!手把手教你搭建Cookies池

崔庆才

静觅博客博主,《Python3网络爬虫开发实战》作者

隐形字

个人公众号:进击的Coder

长按识别二维码关注


好文和朋友一起看~
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/36468
 
335 次点击