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数据结构之二叉树的统计与转换实例
Apr 29 Python
基于python yield机制的异步操作同步化编程模型
Mar 18 Python
Python备份目录及目录下的全部内容的实现方法
Jun 12 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 Python
Python中函数及默认参数的定义与调用操作实例分析
Jul 25 Python
PYTHON基础-时间日期处理小结
May 05 Python
Python3.6实现连接mysql或mariadb的方法分析
May 18 Python
python 魔法函数实例及解析
Sep 25 Python
将labelme格式数据转化为标准的coco数据集格式方式
Feb 17 Python
基于python实现查询ip地址来源
Jun 02 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
Python中文纠错的简单实现
Jul 07 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
用Flash图形化数据(一)
2006/10/09 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
php图片缩放实现方法
2014/02/20 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
返回上一页并自动刷新的JavaScript代码
2014/02/19 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
javascript作用域链与执行环境详解
2017/03/25 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
vue组件与复用详解
2018/04/08 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
会议邀请函范文
2014/01/09 职场文书
集中采购方案
2014/06/10 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
师德标兵先进事迹材料
2014/12/19 职场文书
毕业设计论文评语
2014/12/31 职场文书
家长意见书
2015/06/04 职场文书
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript
python turtle绘图命令及案例
2021/11/23 Python
使用python绘制分组对比柱状图
2022/04/21 Python