effective python学习笔记

这篇博客探讨了Python编程的一些有效做法,包括遵循PEP8风格指南,避免单行语句,理解字节、字符串与Unicode的区别,以及合理使用列表推导式、生成器和异常处理。还提到了元类、并发处理、模块组织和调试工具的使用,旨在提升代码质量和效率。
摘要由CSDN通过智能技术生成
  1. 确认自己所使用的python版本

  2. 遵循PEP8风格指南
    函数、变量及属性应该用小写字母来拼写,各单词之间以下划线相连,例lowercase_underscore.
    类与异常:每个单词均大写的形式来命名,例如CaoutlizedWord.
    不要编写单行的if语句、for循环、while循环以及except语句
    不要通过检测长度的办法来判断somelist是否为[] ,而应该采用 if not somelist这种形式。

  3. 了解byte、str与unicode的区别

  4. 用辅助函数来取代复杂的表达式

  5. 了解切割序列的办法

  6. 在单次切片操作内,不要同时指定start、end和stride

  7. 用列表推导式来取代map和filter

  8. 不要使用含有两个以上表示的列表推导

  9. 用生成器表达式来改写数据量较大的列表推导

  10. 尽量使用enumerate取代range
    enumerate将各种迭代器包装为生成器,以便稍后产生输出值。

for i, flavor in enumerate(flavor_list):
    print(i,flavor)

还可以值得enumerate开始计数的值enumerate(flavor_list)

  1. 用zip同时遍历两个迭代器
    python3中的zip函数,可以把两个或两个以上的迭代器封装为生成器。
names=['aaaaa','ass','aa']
letters=[len(n) for n in names]
for i name in enumerate(names):
    count = letters[i]
    if count>max_letter:
        longest_name =name
        max_letters= count
        
优化
for name,count in zip(names,letters):
    if count > max_letter:
        longest_name=name
        max_letters= count

第一个问题是,python2的zip并不是迭代器。
第二个问题是,如果输入的迭代器长度不同,那么zip就会出现奇怪的行为。

  1. 不要在for和while循环后面写else块

  2. 合理利用try/except/else/finally结构中的每一个代码块

    handle = open('/tm/data.txt')
    try
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值