python补习

用python的习惯写代码

  1. 确定python版本
    python --version

  2. 使用PEP8风格

  3. 了解bytes, str, unicode的区别

    python3 有两种表示字符序列的类型: bytes和str
    python2 也是两种表示字符序列类型: str和unicode
    前者实例包含原始的8位值,后者的实例包含Unicode字符
    要将Unicode字符转成二进制(8位值,每个节位有8个二进制),就是用encode,反之使用decode
    编写程序时,需要转换成Unicode字符类型(python3的str, python2的unicode)

  4. 使用if/else表达式比or(and)更清晰

  5. 切片操作不建议同时使用start,end,stride进行操作,stride为正数,下面反面例子

    	a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
    	a[-2:2:-2] # ['g', 'e'] 这样都不清楚怎么获得
    	```
    
  6. 使用只有一个表达式的列表推导取代map和filter

    	a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    	# 可以为2整除的数,计算平方值
    	b = map(lambda x: x**2, filter(lambda x: x%2 == 2, a))
    	c = [x**2 for x in a if x %2 == 0]
    	```
    

列表推导式,迭代器,生成器的练习代码放在github仓库

函数

  1. 尽量使用异常处理,不要返回None

  2. 了解作用域,闭包函数,高阶函数, 装饰器

    作用域,有4个:局部(方法内),局部外(内置函数的外层),全局(模块级),内置
    有四种作用域:
    L(Local):最内层,包含局部变量,比如一个函数/方法内部。
    E(Enclosing):包含了非局部(non-local)也非全局(non-global)的变量。比如两个嵌套函数,一个 函数(或类) A 里面又包含了一个函数 B ,那么对于 B 中的名称来说 A 中的作用域就为 nonlocal。
    G(Global):当前脚本的最外层,比如当前模块的全局变量。
    B(Built-in): 包含了内建的变量/关键字等。,最后被搜索

    闭包函数:函数嵌套和自由变量

    a = 1
    def test():
        b = 2 # 自由变量
        c = 3
    
        def inner(): # 函数嵌套
            print("a= %s" %a)
            print("b= %s" %b)
    
        print("__closure__==", inner.__closure__)
        return inner
    

    高阶函数:我们知道一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),如果满足其一,则为高阶函数

    常见的内置高阶函数 map, filter…

    def innerfunc():
        print("innerfunc..")
     
    def highfunc(func):
        func()
        print("highfunc..")
         
    highfunc(innerfunc)
    

    递归函数: 调用自己本身的函数叫递归函数

    def fib(n):
    	return 1 if n < 2 else fib(n-1) + fib(n-2)
    >>> 1 1 2 3 5 8 13 21 34 55 89 144 ...
    

    装饰器: 对一个函数、方法、或者类进行加工,作用是为已经存在的对象添加额外的功能,提升代码的可读性
    用法有函数装饰器,类装饰器,实现方式有函数实现,类实现

  3. 参数的默认值,尽量用None或不可变的值,因为程序加载模块时,函数只执行一次哦

类与继承

元类及属性

并发及并行

内置模块

协作开发

部署


目前还不完整,慢慢补进来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值