python菜鸟日记4

来源:互联网 发布:天梭手表怎么样 知乎 编辑:程序博客网 时间:2024/04/30 19:54
1. 在python中,0,‘’,{},(),[],空值,空列表,等等,都表示假值,反之都是真值在逻辑运算and,or中,返回的不是true或者false,返回的是逻辑运算符两边的其中一个值,而对于算数运算符,==,!=,>,<,这些才返回的是true或者false


2. and,从左到右运算,当两边,都是真值时,返回最后一个真值,当两边都是假值时,就返回第一个假值,当同时存在真假值时,则返回第一个假值,其实,记法可根据逻辑运算结果记
       例如: >>> 'a' and 'b'
                            'b'
                   >>> ' ' and 'b'
                          ' '
                   >>> 'a' and 'b' and 'c'
                        'c'


3. or,从左到右运算,当两边都是真值时,返回的是第一个真值,当两边都是假值时,返回最后一个值,当两边同时存在真假值时,则返回第一个真值,or和and的计算方法是相反的
      例如:   >>> 'a' or 'b'
                            'a'
                    >>> '' or 'b'
                           'b'
                    >>> '' or [] or {}
                           {}
                   >>> 0 or 'a' or 'c'
                          'a'


4. filter(函数名,iteratable),filter()函数是将可迭代对象中的元素一一调入函数中,根据函数return的是true和false来决定那些元素留下,哪些元素删除,最后得到的是迭代对象,可用list()函数进行全部输出


5. sorted([],key=函数),sorted函数也是高阶函数,可以利用key只想一个自定义的或者系统自带的函数,将[],中的元素依次调用key所指的函数,然后全部调用完毕以后,返回的值要与原来的[]中的值,有一个一一对应的关系,然后sorted对返回的值进行排序,那么原值也将根据返回值排好的顺序进行排序,最终完成对[]的排序


6. 在python中并不是所有函数都有返回值的,比如append(),sorted(),这些函数就是对调用他们的对象进行修改而已,并没有返回值(也就是说并不生存新的对象),所以当我们调用这些函数的时候,如果再将结果赋值给一个变量的话,那么就得到None,因为python中将没有返回值的函数调用结果将返回一个NONE


7. 将函数作为返回值,当我们在一个函数中嵌套一个函数并将这个函数作为返回值的时候,我们要注意的是,嵌套函数可以引用外部函数的形参和局部变量,当我们调用函数时,嵌套函数并没有执行,而是被当作结果返回给一个变量,只有当我们用这个变量调用函数时,函数才执行


8. 我们调用外部函数时,只执行嵌套函数以外的语句,如for,if,在这些语句里面,可能形参或局部变量会发生变化,而我们调用嵌套函数的时候,用的就是已经发生过变化的这些局部变量和参数值


9. 匿名函数lambda x: x * x,关键字lambda表示匿名函数,冒号前面的x表示函数参数,匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果,匿名函数也是一个对象,可以把匿名函数赋值给一个变量,那么这个变量就有了函数的功能

               例如:>>> f = lambda x: x * x

                          >>> f(5)
                                  25


10. 函数对象都有一个__name__属性,通过这个属性我们可以得到函数名,>>> a=abs>>> a.__name__结果:'abs'


11. 对于int(非int型,base=n),int函数,将第一个参数转换成n进制的整数,默认是n=10,所以一般都是转换成10进制数


12. python中有很多模块,为了避免模块名重复,就引入了包(文件夹)的概念,一个包里面可以有很多模块,我们都知道模块名就是.py文件的文件名,当我们有了包以后,就是包名.文件名,这样模块,名就不会出现重复的问题了,但注意,每个包里面必须有一个__init__.py模块,这样系统才会把它当作一个包而不是一个普通的文件夹,类似的可以有多级目录

1 0