• python 零散记录(五) import的几种方式 序列解包 条件和循环 强调getattr内建函数


    用import关键字导入模块的几种方式:

    #python是自解释的,不必多说,代码本身就是人可读的
    
    import xxx
    from xxx import xxx
    from xxx import xx1,xx2,xx3
    from xxx import *
    import xxx as xxx
    from xxx import xxx as xxx

    序列解包赋值:

    x,y,z = 1,2,3    #右侧1,2,3实际是一个(1,2,3)的tuple,然后解包出来再分别赋值
    
    x,y = y,x            #同理,交换赋值

    if和布尔:

    #True False 实际就是1 0 同样可拿来运算
    True + 1 == 2
    False - 1 == -1
    
    #bool(xx):  #将表达式转换为布尔值
    '''注意:'''#虽然[]与{}都是假值,但是他俩之间直接比较是不相等的
    [] != {}
    #这样才相等
    bool([]) == bool({}) == False
    
    #比较运算符:
        x is y   #x与y是同一个对象引用
        x is not y #同上一个道理
        #is 关键字比较的是同一性,==比较的是相等性
    
        #可以连续比较:
            1<2<3 == 1<2 and 2<3
    
        #布尔运算符:
            and or not
            
            #模拟bool:a?b的三元运算符
                 #方法1
                 (bool and [a] or [b])[0]
                 #首先知道,[a] [b]都是真值
                 #当bool为True时,and 运算结果为[a],or运算结果也为[a],再[0]取出a
                 #当bool为False时,and结果为False,or结果取决于[b],再[0]取出b
        
                #方法2
                a if b else c #b 为1时,则a 否则c

    循环:

    #for 多用于序列或可迭代对象
    
    range(a, b):
        #包含下限不含上限,生成列表
    
    zip(list1, list2);
        #将两个序列压缩在一起,形如:[(list1[1],list2[1]),(list1[2],list2[2])]
        #长度不同时取短的那个
    
    while True/if break#很好用,代码整洁又没有重复
    
    for/else:
        for n in range(10):
            if xxx:
                break
            else:
                #dosomething

    强调一个内建函数:

    #强调一个内建函数 getattr
    l = [1,2,3,4]
    l.pop()
    
    func = getattr(l, 'pop')
    func()
    
    #上面两小段代码是一样的效果 都是弹出最后的元素
    
    #getattr字面就是返回属性,返回 参数 l 的 pop 属性
  • 相关阅读:
    tab选项卡
    为什么不高兴呢
    #pragma INITCODE 是什么意思
    驱动开发基础知识
    Windows的驱动开发模型
    分页内存和非分页内存区别
    WDF驱动模型
    博客启动描述
    struct和typedef struct
    数据解析代码
  • 原文地址:https://www.cnblogs.com/lipijin/p/3283997.html
Copyright © 2020-2023  润新知