More Pythonic ! 更有python风格的编程

交换赋值

a,b = b,a

文件读写

使用with进行文件操作避免忘记写关闭文件导致的不良影响

with open('','r') as f:

    do_sth(f)

格式化输出 str.fomart

print('{A} hit {B}'.format(A='Tom',b='Jerry'))

三目运算 A?X:Y

X if A else Y

switch...case

用字典的get方法实现C语言中的switch...case语句

def f(n):

    return{

        0:'hei',

        1:'oh'

    }.get(n,'a number')

列表理解

编程的时候时常遇到下面这种情况

res = []

for s in t:

    res.append(s[0])

用列表理解简化上述代码,方括号就表示构建新的列表

[s[0] for s in t]

生成器

生成器表达式与列表理解相似

g = (x**2 for x in range(5))

sum(g)

表达式返回的结果是一个生成器对象,而不是一次把结果计算出来,它通过next方法迭代得到下一个值,也可以用for遍历所有值

for val in g:

    print(val)

灵活使用集合

集合作为python的内置数据类型,向其中添加元素,检查成员都很快,它的一个重要特性是一个元素在一个集合中只出现一次,因此可以用集合来去重。

a - b    # 集合减法

a <= b    # a否是b的子集

更规范的注释

行注释

x        # an integer

块注释

def fuction1(A,b):

''' Replace the value in A with b and save as a new list res



    Args:

        A: list, list to ...

        b: int, a number that ...



    Returns:

        res: list, a new list

'''

文档注释

'''

--------------------------------

File Name: fun.py

Description: file to test



Author: zeng

Change Activity:

    17.07.02 delete function1

--------------------------------

'''

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,466评论 25 708
  • 本文翻译自Functional Programming Howto 本文将介绍Python中函数式编程的特性。在对...
    大蟒传奇阅读 2,645评论 4 14
  • 前些日子,公司来了一个part-time, 老板交代一些她基本要做的东西就匆匆忙忙离开办公室了。 就是基本上和顾客...
    victoriapoint阅读 416评论 0 3
  • 时间冒泡就是说: 当点击子元素的时候, 父元素或者祖先元素如果也绑定了点击事件, 那么父元素或者祖先元素的事件也会...
    LiYajie阅读 1,253评论 0 0