18 种方法来优雅你的 Python
共 1760字,需浏览 4分钟
·
2019-07-30 08:13
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
2
跟繁琐的模型说拜拜!深度学习脚手架 ModelZoo 来袭!
3
4
妈妈再也不用担心爬虫被封号了!手把手教你搭建Cookies池
崔庆才
静觅博客博主,《Python3网络爬虫开发实战》作者
隐形字
个人公众号:进击的Coder
长按识别二维码关注