python语句

python


这里只列出python相对其他语言特色的地方。


1,print和import的更多信息
    
    print使用逗号输出多个表达式
    使用别名:
    from module1 import functhion as aaa
    from module2 import functhion as bbb
    将不同模块中的同名函数区分开




2,赋值魔法

    序列解包:
        >>>x,y = 1,2
        实际上这句话是先将(1,2)作为一个元组,然后赋给x,y的
        即赋值是同时进行的,没有先后顺序,因此:
        >>>x,y = y,x可以直接交换x,y的值
        当函数返回元组时(返回多个值),序列解包很有用,它可以直接把返回的元组赋给多个值

    链式赋值:x = y = function()



3,关于if elif else while for break continue while/true以及语句缩排在这就不说了
    
    比较运算符:
        x == y        x != y        内容相等
        x is y        x is not y    是同一个对象
        x in y        x not in y    是否在容器中
    1)大小比较(>和<)不要比较不兼容类型,比较相同或者近似类型时才有意义(例如整型可以跟浮点型比较)
    2)字符比较,序列比较
        ‘abcd’ < 'bacd'        True
        [1,2] < [2,1]        True    按顺序比较
        [2,[1,3]] < [2,[1,4]]    True
    3)布尔表达式的值
        False    None    0    ""    ()    []    {}
        以上值为假,标准的False和None,所有类型的0(浮点,长整型,其他类型),空序列,空字典为假,其他一些都被解释为真。
        Laura Creighton解释说:“有些东西和没有东西的区别”



4,遍历和迭代语法

    1)for迭代
        d = {'x':'1','y':'2','z':'3'}
        for key in d:
            print key,d[key]
        不保持顺序。    
    
        for key,value in d.items():
            print key,value

        for number in range(0,10)
            print number
        不包括10,从0-9


    2)迭代工具
        并行迭代:
            程序同时迭代2个序列:
            names = ['name1','name2','name3']
            ages = [1,2,3]
            for i in range(len(names)):
                print names[i],ages[i]
            
            使用并行迭代工具:
            >>>zip(names,ages)
            >>>[('name1',1),('name2',2),('name3',3)]
            zip函数可以将两个序列压缩在一起,返回一个元组的列表。
            for name,age in zip(names,ages):
                print name,age
            zip函数可以作用于任意多的序列,重要的一点是可以应付不等长序列,当最短的序列用完是就停止,例如上述若names有10个元素而ages只有3个元素。

        

        编号迭代:
            有时候想要迭代序列中的对象,还想要同时获取到这个对象当前的索引。
            例如,要将列表:
            strings = ['abcc','fgbccad','abca','ftbcd']中所有包含bcc子串的字符串替换为‘hello’,即变为
            strings = ['hello','hello','abca','ftbcd']
            在迭代每个对象时,比较这个字符串是否含bcc子串,若含,则将整个字符串替换为hello,这种情境下就需要得知当前对象的索引。
            方案1:
                for string in strings:
                    if('bcc' in string):
                        index = strings.index(string)
                        strings[index] = 'hello'
            方案2:
                index = 0
                for string in strings:
                    if 'bcc' in string:
                        string[index] = 'hello'
                    index += 1
            方案3:编号迭代工具enumerate()函数
                
            enumerate(strings)提供了 索引-值 对
            例如:
            for index,string in enumerate(stings):
                print index,string
            结果:
                0 abcc
                1 fgbccad
                2 abca
                3 ftbcd
            所以本例可以:
            for index,string in  enumerate(stings):
                if('bcc' in string):
                    string[index] = 'hello'


4,列表推导式-轻量级循环
    
    利用其它列表创建新列表的一种方式。
    >>>[x*x for x in range(4)]
    >>>[0,1,4,9]

    >>>[x*x for x in range(10) if x % 3 == 0]
    >>>[0,9,36,81]

    >>>[(x,y) for x in range(2) for y in range(3)]
    >>>[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]



5,其他语句

    1)pass    
        python中空代码块是非法的,pass代表什么也不做
    

    2)使用del删除

        del一个名字就移除了它原来所指对象上的这个引用,同时删除了那个名字(此后此名字成为未定义的)。
        但是注意对象本身是永远无法去删除的,它总是由垃圾回收机制去做。
        >>>x = ['hello','woeld']
        >>>y = x      #y和x这两个引用指向了同一个对象
        >>>y[1] = 'python'    #同时也会改变x
        >>>x
        >>>['hello','python']
        >>>del x    #在对象上移除引用x,同时删除x这个名字
        >>>y        #y仍然可用
        >>>x        #但x这个名字成为未定义
        ......错误发生
    

    3)exec执行    eval求值字符串
        
        有时候需要动态的创建代码,exec可以将字符串作为一段代码去执行。
        eval将字符串作为表达式去求值。
        >>>exec "print 'hello world'"
        >>hello world        #执行字符串的内容的那行代码
        在python3.0中,exec是函数,应该放在括号中。
        >>>A = {}
        >>>exec 'aaa = 1' in A
        >>>A['aaa']
        >>>1

        >>>eval('3 + 4 * 5')
        >>>23
        
            
        --------------------------------------------------------------------------------------------------------------------------------------------------------------------------

总结:

python语句,表达式,数据类型,运算符都完了,仅列出python相对其他语言的特色地方。




           

以上是 python语句 的全部内容, 来源链接: utcz.com/z/387155.html

回到顶部