python 高级知识点

1.切片:截取List,tuple指定范围内的值:>>L[0,3]算法

2.若是给定一个list或tuple,咱们能够经过for循环来遍历这个list或tuple,这种遍历咱们称为迭代(Iteration)。    在Python中,迭代是经过for ... in来完成的   for x in L      print(x)编程

3.列表生成式时,就是动态的建立列表,把要生成的元素x * x放到前面,后面跟for循环,就能够把list建立出来,十分有用,多写几回,很快就能够熟悉这种语法。闭包

for循环后面还能够加上if判断,这样咱们就能够筛选出仅偶数的平方:ide

>>> [x * x for x in range(1, 11) if x % 2 == 0] [4, 16, 36, 64, 100]函数式编程

还可使用两层循环,能够生成全排列:函数

>>> [m + n for m in 'ABC' for n in 'XYZ'] ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']日志

运用列表生成式,能够快速生成list,能够经过一个list推导出另外一个list,而代码却十分简洁。对象

4。生成器 在Python中,这种一边循环一边计算的建立list的机制,称为生成器:generator,节省大量的空间       g=(x * x for x in range(10)]        for  x in g:              print(x)排序

5.这些能够直接做用于for循环的对象统称为可迭代对象:Iterable。     以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。      可使用isinstance()判断一个对象是不是Iterator对象: 小结 凡是可做用于for循环的对象都是Iterable类型;进程

凡是可做用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;

集合数据类型如list、dict、str等是Iterable但不是Iterator,不过能够经过iter()函数得到一个Iterator对象。

Python的for循环本质上就是经过不断调用next()函数实现的,例如:

for x in [1, 2, 3, 4, 5]:     pass

6. 函数式编程的一个特色就是,容许把函数自己做为参数传入另外一个函数,还容许返回一个函数! 可见,abs(-10)是函数调用,而abs是函数自己。 说明变量f如今已经指向了abs函数自己。直接调用abs()函数和调用变量f()彻底相同。

7.编写高阶函数,就是让函数的参数可以接收别的函数。map,reduce

8.filter()函数 Python内建的filter()函数用于过滤序列。

9.排序算法 Python内置的sorted()函数就能够对list进行排序: sorted()也是一个高阶函数。用sorted()排序的关键在于实现一个映射函数。 >>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5, 9, 36] 要进行反向排序,没必要改动key函数,能够传入第三个参数reverse=True:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True) ['Zoo', 'Credit', 'bob', 'about']

10.闭包 内部函数sum能够引用外部函数lazy_sum的参数和局部变量,当lazy_sum返回函数sum时,相关参数和变量都保存在返回的函数中,这种称为“闭包(Closure)”的程序结构拥有极大的威力。 高阶函数除了能够接受函数做为参数外,还能够把函数做为结果值返回。

11.匿名函数  关键字lambda表示匿名函数,冒号前面的x表示函数参数。 >>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])) [1, 4, 9, 16, 25, 36, 49, 64, 81

12.装饰器  在函数调用先后自动打印日志,但又不但愿修改now()函数的定义,这种在代码运行期间动态增长功能的方式,称之为“装饰器”(Decorator)。

13. 偏函数  简单总结functools.partial的做用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。

14. 模块  在Python中,一个.py文件就称之为一个模块(Module)。为了编写可维护的代码,咱们把不少函数分组,分别放到不一样的文件里,为了不模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。 做用域 在一个模块中,咱们可能会定义不少函数和变量,但有的函数和变量咱们但愿给别人使用,有的函数和变量咱们但愿仅仅在模块内部使用。在Python中,是经过_前缀来实现的。

15 正常的函数和变量名是公开的(public),能够被直接引用,好比:abc,x123,PI等;

相似__xxx__这样的变量是特殊变量,能够被直接引用,可是有特殊用途,好比上面的__author__,__name__就是特殊变量,hello模块定义的文档注释也能够用特殊变量__doc__访问,咱们本身的变量通常不要用这种变量名;

相似_xxx和__xxx这样的函数或变量就是非公开的(private),不该该被直接引用,好比_abc,__abc等;

之因此咱们说,private函数和变量“不该该”被直接引用,而不是“不能”被直接引用,是由于Python并无一种方法能够彻底限制访问private函数或变量,可是,从编程习惯上不该该引用private函数或变量。

因为Python是跨平台的,天然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台版本的多进程模块。 multiprocessing模块提供了一个Process类来表明一个进程对象

相关文章
相关标签/搜索