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 命令行也可以自动补全
Nov 30 Python
python:socket传输大文件示例
Jan 18 Python
Python实现随机选择元素功能
Sep 14 Python
python实现linux下抓包并存库功能
Jul 18 Python
python实现剪切功能
Jan 23 Python
python使用threading.Condition交替打印两个字符
May 07 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
python如何设置静态变量
Sep 07 Python
Python操作dict时避免出现KeyError的几种解决方法
Sep 20 Python
Pycharm Plugins加载失败问题解决方案
Nov 28 Python
python中os.remove()用法及注意事项
Jan 31 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
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
php创建无限级树型菜单
2015/11/05 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
JavaScript高级程序设计(第3版)学习笔记5 js语句
2012/10/11 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
React快速入门教程
2017/01/17 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
python读取注册表中值的方法
2013/04/08 Python
python解析xml文件操作实例
2014/10/05 Python
python sort、sorted高级排序技巧
2014/11/21 Python
使用python3构建文件传输的方法
2019/02/13 Python
python动态进度条的实现代码
2019/07/03 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
应聘教师推荐信
2013/10/31 职场文书
结婚周年感言
2014/02/24 职场文书
小学生安全责任书
2014/07/25 职场文书
自我查摆剖析材料
2014/10/11 职场文书
旷课检讨书500字
2014/10/14 职场文书
小学校长个人总结
2015/03/03 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
初中军训感言
2015/08/01 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript