Python 5个必会小技巧

news/2024/7/19 9:28:17 标签: python, 开发语言, 爬虫, pygame, pycharm

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

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

使用交互模式

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

使用pdb进行调试

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

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

看这个例子。

python">def sum(a, b):    
return a + ba,b = 1, 2
import pdbpdb.set_trace()
sum(a, b)

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

python">-> sum(a, b)(Pdb) pp a1(Pdb) pp b2(Pdb) n--Return
--> pdb_example.py(7)<module>()->None-> 
sum(a, b)(Pdb) qTraceback (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 BdbQuitbdb.BdbQuit

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

import pdbpdb.set_trace()

这应该比pycharm香吧。

使用pyenv

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

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

详细的就不说明了,资料很多,大家可以去搜索一下。对于新手小白想更轻松的学好Python基础,Python爬虫,web开发、大数据,数据分析,人工智能等技术,这里给大家赠送系统教学资源,联系我魏X:762459510 【python教程/工具/方法/解疑】

列表/字典表达式

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

比如下面这段代码

python">l = [1,3,5,7,9,11]
res = []foriteminl:res.append(item +1)
print(res)

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

python">print([i + 1 for i in l])

一行搞定,成熟老练。

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

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

lambda

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

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

python">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函数就显得啰嗦了,不如使用lambda这样来。

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

是不是看上去好多了?


http://www.niftyadmin.cn/n/4921.html

相关文章

车规级芯片之 MCU、MPU、DSP、FPGA、SOC

1.概述 随着处理器技术的不断发展&#xff0c;CPU(Central Processing Unit)的发展逐渐出现三种分支&#xff0c;分别是MCU(Micro Controller Unit&#xff0c;微控制器单元) 和MPU&#xff08;Micro Processor Unit&#xff0c;微处理器单元&#xff09;和DSP(Digital Signal …

LTE无线网络优化基础

一、LTE无线网络优化介绍   1.什么是LTE   LTE是Long Term Evolution的缩写&#xff0c;全称为3GPP Long Term Evolution&#xff0c;中文一般翻译为3GPP长期演进技术&#xff0c;为第三代合作伙伴计划&#xff08;3GPP&#xff09;标准&#xff0c;使用“正交频分复用”…

去除有重复的行

【问题】 I have a csv file and I have duplicate as well as unique data getting add to it on a daily basis. This involves too many duplicates. I have to remove the duplicates based on specific columns. For eg: csvfile1: title1 title2 title3 title4 title5…

web前端期末大作业:基于HTML+CSS+JavaScript制作鲜花礼品在线购物网站设计(19页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

39.SSH远程终端连接工具

目录 1.SSH简介&#xff1a; 2.SSH登录原理&#xff1a; 3.SSH结构&#xff1a; 4.SSH基本用法&#xff1a; 5.SSH服务认证类型&#xff1a; &#xff08;2&#xff09;基于密钥认证&#xff1a; 6.SSH服务常见配置&#xff1a; &#xff08;1&#xff09;修改默认端口&…

SpringSecurity Oauth2实战 - 10 自定义SpEL权限表达式配置白名单url不需要token认证和鉴权

文章目录1. 同时配置url和权限表达式1. /api/v1/doc 配置 antMatchers("/api/v1/doc").permitAll()2. /api/v1/doc 配置 PreAuthorize("hasAuthority(knowledge)")3. 启动项目测试2. 配置白名单url不需要token认证1. 白名单属性配置类 WhiteUrlAutoConfigu…

扫雷游戏(C语言)

扫雷&#xff1a; 游戏简述&#xff1a; 1、在一个棋盘中的任意位置&#xff0c;随机埋上一个雷&#xff0c;这个雷的数量是固定的&#xff0c; 2、然后让用户去选择位置排雷&#xff0c; 若选择的该位置没有雷&#xff0c;则在该位置显示周边一圈位置中雷的个数&#xff0c; …

记录一个删库跑路的技巧(如何快速删除数据库下面的所有表)

如何快速删除数据库下面的所有表先说sql语句&#xff0c;耐不住性子往下看的直接在数据库执行这个就可以~然后你会获得所有的删除sql语句然后就是CV大法把这两句&#xff08;打个比方&#xff09;执行一下~库就空了&#xff01;你千万不要想着跑路啊&#xff0c;你千万不要想着…