美文网首页
python学习手册ed4 读书笔记

python学习手册ed4 读书笔记

作者: daydaygo | 来源:发表于2018-11-08 20:19 被阅读15次

    python 学习手册

    变量、对象、引用

    py 编译 -> pyc 字节码 -> pvm
    CPython / Jython / IronPython / PyPy
    Psyco: for JIT
    Shedskin C++
    冻结二进制
    pdb
    交互模式多行语句

    类型和运算

    不可变性:数字、字符串、元组 vs 列表、字典
    PyDoc: extract help from code, format to html

    3.1415 * 2
    print(3.1415 * 2)
    
    # list
    l = [1, 2, 3]
    l + [4, 5, 6]
    l.append('l')
    l.pop(2)
    l.sort()
    l.reverse()
    l[99]  # error
    m[1][2]
    l2 = [l[1] + 1 for l in m if l[2] % 2 == 0]
    
    g = (sum(l) for l in m)  # generator
    next(g)
    
    list(map(sum, m))
    {i: sum(m[i]) for i in range(3)}
    
    # dict
    d = {'a': 'b', 'c': 'd'}
    d['a']
    d['e'] = 'f'
    d['a']['e']
    
    list(d.keys()) # care dict_keys
    {k: d[k] for k in sorted(d)}
    
    # tuple
    t = (1, 2)
    t + (3, 4)
    t[0]
    t.index(1)
    t.count(2)
    
    # dict
    {'a': 1, 'b': 2}
    if 'f' in D
    D.get('f', 0)
    
    # set
    s = set('span')
    s = {'s', 'p', 'a', 'n'}
    
    # bool
    True / false
    
    # file
    f = open('a.txt') # 'r' is default
    
    # control
    [x ** 2 for x in range(4)]  # map & filter is 2 faster
    if 'f' in d
    
    # seq unpack
    a, *b, c = seq
    
    # class
    self
    __init__
    
    # expression
    x if y else z # 三元操作符
    yield x # 生成器
    lambda args: expression # 匿名函数
    and or not # 逻辑运算
    | ^ & # 位运算、集合运算
    数学运算
    
    运算符重载
    

    数字

    数字:常量、进制
    公用模块:random 、 math
    显示格式:str、repr
    除法:传统除法、floor 除法、真除法
    整数精度:类型自动转换
    数字扩展:NumPy

    math.floor(-2.5)
    math.trunc(-2.5)
    
    random.random()
    random.ranint(1, 10)
    random.choice(range(5))
    
    from decimal import Decimal # 小数类型
    Decimal(0.1) + Decimal(0.1)
    
    from fractions import Fraction # 分数类型
    f = Fraction(1, 3)
    

    字符串

    单引号和双引号相等,都能转义
    re

    span + span
    '''fsfsdf
    sfsf'''
    r'span' # 不能以单个反斜杠结尾
    b'span'
    s.encode('latin-1')
    map(ord, s)
    s.rstrip()
    ','.join(L)
    line.split(',')
    
    '%(d)d %(s)s' % {'d': 10, 's': 'span'}
    
    vars()
    

    列表和字典

    NumPy: 矩阵
    sort():类型不同触发异常

    dict: associative array / hash
    missing-key error

    list(range(-4, 4))
    
    zip(l1, l2)
    sorted(d)
    list(d.keys()).sort()
    
    if key in D:
    

    元组 文件 其他

    文件迭代器是最好的读取行工具
    内容是字符串,不是对象
    eval() / pickle

    标准流 sys.out / os / sockets、pipes、FIFO / 按键 / shell 命令流

    引用 vs 拷贝:赋值生成引用,而不是拷贝
    比较、相等、真值
    None -> null
    留意循环结构
    不可变类型

    f = open('f.bin', 'rb')
    try:
        for line in f:
        finallly:
            f.close()
    

    语句和语法

    程序、模块、语句、表达式、建立并处理对象
    分片
    解包
    PEP8
    continue / break / pass /else
    PyDoc
    函数:calls / def / return / global / nonlocal / yield / lambda
    作用域法则:内嵌的模块是全局作用域、全局作用域的作用范围仅限单个文件、每次对函数的调用都创建一个新的本地作用域、默认本地变量、本地 / 全局 / 内置
    LEGB 原则
    PyChecker
    argument(parameter)

    while True:
        reply = input('enter text:')
        if reply == 'stop': break
        print(reply)
    
    a, *b, c = range(10)
    
    # redirect stdout
    import sys
    tmp = sys.stdout
    sys.stdout = open('log.txt', 'a')
    print('span')
    sys.stdout.close()
    std.stdout = tmp
    
    enumerate(l) # iterator
    __next__()
    i = iter(l)
    l.next()
    
    [x+y for x in 'abc' for y in 'mn']
    
    a,b = zip(*zip(x,y)) # unzip
    
    __doc__
    

    相关文章

      网友评论

          本文标题:python学习手册ed4 读书笔记

          本文链接:https://www.haomeiwen.com/subject/ydlgxqtx.html