python高级编程 豆瓣,python核心编程 豆瓣,给大家整理了19个pythonic的编程习惯(小结)

python高级编程 豆瓣,python核心编程 豆瓣,给大家整理了19个pythonic的编程习惯(小结)

这篇文章主要介绍了给大家整理了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: