python 提高开发效率的5个小技巧


Posted in Python onOctober 19, 2020

很多时候学习是一种难者不会,会者不难的事情。

下面的5个python技巧是性价比极高的知识点,一学就会,不难但是相当管用。

使用交互模式

使用python -i xxxx.py可以直接进入python的交互模式,可以很方便的调用xxxx.py中定义的方法和函数,特别适合调试没有main()方法的文件,强力推荐。

使用pdb进行调试

很多从c++/java转到python的同学可能对python没有断点功能相当失望。

其实python自带的pdb库就可以解决这个问题。

看这个例子。

def sum(a, b):
  return a + b

a,b = 1, 2
import pdb
pdb.set_trace()
sum(a, b)

运行这个文件,这时候就会进入调试模式,按n运行下一行,按pp打印出任何你想打印的变量和值,按q退出。

-> sum(a, b)
(Pdb) pp a
1
(Pdb) pp b
2
(Pdb) n
--Return--
> pdb_example.py(7)<module>()->None
-> sum(a, b)
(Pdb) q
Traceback (most recent call last):
 File "pdb_example.py", line 7, in <module>
  sum(a, b)
 File "D:\dev\python3\lib\bdb.py", line 52, in trace_dispatch
  return self.dispatch_return(frame, arg)
 File "D:\dev\python3\lib\bdb.py", line 96, in dispatch_return
  if self.quitting: raise BdbQuit
bdb.BdbQuit

过程如上面所示,所以简单记住想调试的时候用下面这两行代码

import pdb
pdb.set_trace()

这应该比pycharm香吧。

使用pyenv

pyenv可以创建隔离的python开发环境,你可以实现在本机同时安装多个版本的三方库功能。

比如你可以在本机同时安装django0.1/django0.2诸如此类的版本,互不干扰。

详细的就不说明了,资料很多,大家可以去搜索一下。

列表/字典表达式

这是python里相当实用的一个功能。

比如下面这段代码

l = [1, 3, 5, 7, 9, 11]

res = []
for item in l:
  res.append(item + 1)
print(res)

这里我们把列表l里的每个数都加了1。当然这样写是没错的了,不过有更简单的办法。

print([i + 1 for i in l])

一行搞定,成熟老练。

我们甚至可以在列表表达式里增加条件判断,比如只把10以下的数加1并打印出来

print([i + 1 for i in l if i < 10])

相关资料也很多,强烈推荐去学习一下。

lambda

python里的匿名函数功能,熟悉js的同学应该感到亲切,特别适合用来做回调。

比如我们要过滤列表中所有的奇数

l = [i for i in range(1, 100)]
print(l)

def is_odd(num):
  return num % 2 != 0

print([i for i in filter(is_odd, l)])

这样定义了一个is_odd函数就显得??铝耍?蝗缡褂?ambda这样来。

print([i for i in filter(lambda x: x % 2 != 0, l)])

是不是看上去好多了?

总结

这里5个小技巧能极大的提升大家python的开发效率,如果有其他特多技巧,欢迎留言讨论。

以上就是python 提高开发效率的5个小技巧的详细内容,更多关于python 提高开发效率技巧的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python求解水仙花数的方法
May 11 Python
浅谈Python 的枚举 Enum
Jun 12 Python
Python内置模块logging用法实例分析
Feb 12 Python
python使用代理ip访问网站的实例
May 07 Python
python 划分数据集为训练集和测试集的方法
Dec 11 Python
Python数据可视化库seaborn的使用总结
Jan 15 Python
Python中字符串与编码示例代码
May 20 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
解决Django中调用keras的模型出现的问题
Aug 07 Python
python利用opencv实现SIFT特征提取与匹配
Mar 05 Python
Pygame框架实现飞机大战
Aug 07 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
python 利用toapi库自动生成api
Oct 19 #Python
协程Python 中实现多任务耗资源最小的方式
Oct 19 #Python
python爬取音频下载的示例代码
Oct 19 #Python
Python爬虫教程知识点总结
Oct 19 #Python
自定义Django_rest_framework_jwt登陆错误返回的解决
Oct 18 #Python
如何利用python读取micaps文件详解
Oct 18 #Python
Python中Yield的基本用法
Oct 18 #Python
You might like
建立动态的WML站点(二)
2006/10/09 PHP
php中转义mysql语句的实现代码
2011/06/24 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
Javascript学习笔记 delete运算符
2011/09/13 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
javascript数组详解
2014/10/22 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python字符串格式化%s%d%f详解
2018/02/02 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
django foreignkey(外键)的实现
2019/07/29 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
html5实现输入框fixed定位在屏幕最底部兼容性
2020/07/03 HTML / CSS
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
美国羊皮公司:Overland
2018/01/15 全球购物
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
文明倡议书
2015/01/19 职场文书
项目建议书
2015/02/04 职场文书
高一英语教学反思
2016/03/03 职场文书
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python
css3 文字断裂效果
2022/04/22 HTML / CSS
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android