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 21 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
Python使用getpass库读取密码的示例
Oct 10 Python
Python求出0~100以内的所有素数
Jan 23 Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
python装饰器相当于函数的调用方式
Dec 27 Python
使用python-pptx包批量修改ppt格式的实现
Feb 14 Python
python实现堆排序的实例讲解
Feb 21 Python
python简单实现最大似然估计&amp;scipy库的使用详解
Apr 15 Python
基于Python爬取素材网站音频文件
Oct 21 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实现的mysqldb读写分离操作类示例
2017/02/07 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
IE8 浏览器Cookie的处理
2009/01/31 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
2014/06/09 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
2016/05/05 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
tween.js缓动补间动画算法示例
2018/02/13 Javascript
js实现继承的方法及优缺点总结
2019/05/08 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
[42:24]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第一场 11.01
2020/11/02 DOTA
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
Python合并字符串的3种方法
2015/05/21 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
Python编写一个优美的下载器
2018/04/15 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
详解Python_shutil模块
2019/03/15 Python
python3实现单目标粒子群算法
2019/11/14 Python
浅析python 字典嵌套
2020/09/29 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
家长对孩子的感言
2014/03/10 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
使用Apache Camel表达REST服务的方法
2022/06/10 Servers