这篇文章主要介绍了给大家整理了19个预言的的编程习惯(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
计算机编程语言最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。
要写出蟒蛇(优雅的、地道的、整洁的)代码,需要多看多学大牛们写的代码,github上有很多非常优秀的源代码值得阅读,比如:请求、烧瓶、龙卷风、下面列举一些常见的预言的写法。
0. 程序必须先让人读懂,然后才能让计算机执行。
"程序必须是为人们阅读而写的,并且只是附带地为机器执行而写的."
1. 交换赋值
##不推荐
温度=a
a=b
b=a
##推荐
a,b=b,a #老师成一个元组(元组)对象,然后解除…的负担
2. Unpacking
##不推荐
l=['大卫','皮托尼斯塔',' 1-514-555-1234']
名字=l[0]
姓氏=l[1]
电话号码=l[2]
##推荐
l=['大卫','皮托尼斯塔',' 1-514-555-1234']
名,姓,电话号码=l
#仅限Python 3
第一,*中间,最后=另一个_列表
3. 使用操作符in
##不推荐
如果水果=='苹果'或水果=='橘子'或水果=='浆果':
# 多次判断
##推荐
如果水果在['苹果','橘子','浆果']:
# 使用在更加简洁
4. 字符串操作
##不推荐
颜色=['红色','蓝色','绿色','黄色]
结果=' '
对于彩色的:
结果=s #每次赋值都丢弃以前的字符串对象,生成一个新对象
##推荐
颜色=['红色','蓝色','绿色','黄色]
结果=""。加入(颜色)#没有额外的内存分配
5. 字典键值列表
##不推荐
对于my_dict.keys()中的关键:
#我的字典[答案].
##推荐
对于我的字典中的关键字:
#我的字典[答案].
# 只有当循环中需要更改键值的情况下,我们需要使用my_dict.keys()
# 生成静态的键值列表。
6. 字典键值判断
##不推荐
如果my_dict.has_key(key):
# .用d[键]做某事
##推荐
如果在我的字典中键入:
# .用d[键]做某事
7. 字典 get 和 setdefault 方法
##不推荐
navs={}
对于数据中的(投资组合、权益、头寸):
如果投资组合不在航行中:
nav投资组合]=0
nav投资组合]=头寸*价格[权益]
##推荐
navs={}
对于数据中的(投资组合、权益、头寸):
# 使用得到方法
投资组合。get(投资组合,0)头寸*价格[权益]
# 或者使用设置默认值方法
navs.setdefault(投资组合,0)
nav投资组合]=头寸*价格[权益]
8. 判断真伪
##不推荐
如果x==真:
# .
if len(items)!=0:
# .
如果物品!=[]:
# .
##推荐
如果x:
# .
如果项目:
# .
9. 遍历列表以及索引
##不推荐
items=' 0123 ' .拆分()
#方法一
i=0
对于项目中的项目:
打印我,项目
i=1
#方法2
对于范围内的一级(贷款(项目)):
打印我,项目[我]
##推荐
items=' 0123 ' .拆分()
对于我,枚举中的项(项):
打印我,项目
10. 列表推导
##不推荐
new_list=[]
对于列表中的项目:
如果条件(项目):
新列表.追加
##推荐
new _ list=[fn(item)for item in a _ list if condition(item)]
11. 列表推导-嵌套
##不推荐
对于嵌套列表中的子列表:
if list_condition(子列表):
对于子列表中的项目:
如果项目条件(项目):
#做点什么.
##推荐
gen=(item for sl in nested _ list if list _ condition(sl)\
对于海平面中的项目if item_condition(项目))
对于情报中的项目:
#做点什么.
12. 循环嵌套
##不推荐
对于x _列表中的x:
对于y _列表中的y:
对于z _列表中的z:
#为x放大器做点什么;ampy
##推荐
从itertools导入产品
对于产品中的x,y,z(x _ list,y_list,z_list):
#为x,y,z做点什么
13. 尽量使用生成器代替列表
##不推荐
定义我的范围(n):
i=0
结果=[]
而我ampltn:
result.append(fn(i))
i=1
返回结果#返回列表
##推荐
定义我的范围(n):
i=0
结果=[]
而我ampltn:
产量fn(i) #使用生成器代替列表
i=1
# 尽量用生成器代替列表,除非必须用到列表特有的函数。
14. 中间结果尽量使用imap/ifilter代替map/filter
##不推荐
reduce(rf,filter(ff,map(mf,a_list)))
##推荐
从itertools导入ifilter,imap
reduce(rf,ifilter(ff,imap(mf,a_list)))
#懒惰评估会带来更高的内存使用效率,特别是当处理大数据操作的时候。
15. 使用any/all函数
##不推荐
发现=假
对于列表中的项目:
如果条件(项目):
发现=真
破裂
如果找到:
#找到了就做点什么.
##推荐
如果有(a _列表中项目的条件(项目)):
#找到了就做点什么.
16. 属性(property)
##不推荐
类别时钟(对象):
def __init__(self):
自我。_ _小时=1
def setHour(自身,小时):
如果25安培;gt;小时安培数;gt;0:自我。_ _小时=小时
否则:引发BadHourException
定义获取时间(自身):
回归自我。_ _小时
##推荐
类别时钟(对象):
def __init__(self):
自我。_ _小时=1
def __setHour(self,Hour):
如果25安培;gt;小时安培数;gt;0:自我。_ _小时=小时
否则:引发BadHourException
def __getHour(self):
回归自我。_ _小时
hour=property(__getHour,__setHour)
17. 使用 with 处理文件打开
##不推荐
f=打开(' some_file.txt ')
尝试:
data=f.read()
# 其他文件操作.
最后:
f.close()
##推荐
用打开(' some_file.txt ')作为女:
data=f.read()
# 其他文件操作.
18. 使用 with 忽视异常(仅限Python 3)
##不推荐
尝试:
os.remove('somefile.txt ')
除了o错误:
及格
##推荐
从上下文库导入仅忽略# Python 3
忽略(错误):
os.remove('somefile.txt ')
19. 使用 with 处理加锁
##不推荐
导入线程
锁=线程。锁定()
lock.acquire()
尝试:
# 互斥操作.
最后:
lock.release()
##推荐
导入线程
锁=线程。锁定()
带锁:
# 互斥操作.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。