Python技巧

Python,现如今非常热门的一种编程语言,在人工智能中大放异彩。做任何事都需要技巧,这可以大大提高效率,学习Python,同样如此!

第一个就是assret语句,让我们看下面一个关于折扣的例子:

复制代码
def dicountT(price,discount):    price1=price*discount    assert 0<=price1<=price    return price1
print(dicountT(130,0.75))print(dicountT(1300,7.5))
结果:97.5Traceback (most recent call last):  File "E:/3-10/tril.py", line 7, in <module>    print(dicountT(1300,7.5))  File "E:/3-10/tril.py", line 3, in dicountT    assert 0<=price1<=priceAssertionError

很明显,加入断言后,程序在结果不合常理的状况下报错了,从而避免了卖家损失。这个例子很简单,但要说明的是这在测试程序时非常有用,尤其是一些大型复杂的程序。

这里,你可能会有疑问,为什么我们不用异常语句呢?其实,断言是为了告诉开发人员程序中发生了不可恢复的错误,对于一些可以预料的错误,用户可以予以纠正和重试,断言并不是为此而生。

记住,断言是用于内部自检,是一种调试辅助功能,不是用来处理运行错误的机制,目的是让开发者更快找到可能导致bug的根本原因。

下一个就是with语句,with语句非常有用,有助于编写更加清晰易读的Python代码

复制代码
with open("one.txt",'w') as f:    f.write("onetwo")

这样,我们完成了打开文件并写入内容的功能,同时,with语句确保了打开的文件描述符在程序执行离开with语句的上下文后自动关闭。当然,下面程序也是等同的

复制代码
f=open("one.txt",'w')try:    f.write("onetwo")finally:    f.close()

这也是可行的。但下面这种一定要避免:

复制代码
f=open("one.txt",'w')f.write("onetwo")f.close()

虽然从逻辑上非常非常合理,但一旦调用f.write()时发生异常,这段代码并不能保证文件最后被关闭。

总的来说,with语句不仅可以让处理系统资源的代码更易读,更不会忘记清理或释放资源,因此可以避免bug或资源泄露

1 交换变量

不使用另一个变量,实现变量交换。

复制代码
x=1 y=2 x,y=y,x print(x) print(y) 21

2 链式赋值

如果需要让多个变量引用同一个对象,则可以使用链式赋值:​​​​​​​

复制代码
>>> x = y = z = 1>>> x, y, z(1, 1, 1)

3 多重赋值​​​​​​​

复制代码
>>> x, *y, z = 2, 4, 8, 16>>> x2>>> y[4, 8]>>> z16

4 利用python集合元素的唯一性去重

​​​​​​​

复制代码
>>> x = [1, 2, 1, 4, 8]>>> y = set(x)>>> y{8, 1, 2, 4}>>> z = list(y)>>> z[8, 1, 2, 4]

5 字符串倒序

​​​​​​​

复制代码
>>> str1="qqaabb">>> str2=str1[::-1]>>> sttr2'bbaaqq'

6 运算符:or and not

7 合并字典

合并两个字典的方法之一就是将它们解包到一个新的字典中:

​​​​​​​

复制代码
>>> x = {'u': 1}>>> y = {'v': 2}>>> z = {**x, **y, 'w': 4}>>> z{'u': 1, 'v': 2, 'w': 4}

8 学会使用装饰器

相关推荐
冷雨夜中漫步1 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴1 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再1 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
m0_736919103 小时前
C++代码风格检查工具
开发语言·c++·算法
喵手3 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_944934733 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy3 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
黎雁·泠崖4 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
2301_763472465 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
肖永威5 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos