python 高级特性笔记

来源:互联网 发布:迪杰斯特拉算法表格 编辑:程序博客网 时间:2024/05/18 01:08

python高级特性

修改文件中的方法,不能直接使用?

在使用发现不能改变,原因是因为文件已经加载到内存,改变源文件,并不能生效,所以要重新导入。

在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

所有可迭代的对象都可以用 for x in s 来处理,判断是否可迭代:

>>> from collections import Iterable>>> isinstance('abc', Iterable) # str是否可迭代True>>> isinstance([1,2,3], Iterable) # list是否可迭代True>>> isinstance(123, Iterable) # 整数是否可迭代False

Python内置的enumerate函数可以把一个list变成索引-元素对

>>> for i, value in enumerate(['A', 'B', 'C']):...     print(i, value)...0 A1 B2 C

问题1,输出L1 = [‘Hello’, ‘World’, 18, ‘Apple’, None] 由于不能输出

L1 = ['Hello', 'World', 18, 'Apple', None][s.lower() for s in L1 if isinstance(s, str) ]['hello', 'world', 'apple']

关于generator的调用,yield关键字,遇到yield就会中断,下次会继续执行。

>>> g = fib(6)>>> while True://异常捕获...     try:...         x = next(g)...         print('g:', x)...     except StopIteration as e:...         print('Generator return value:', e.value)...         break...g: 1g: 1g: 2g: 3g: 5g: 8Generator return value: done
原创粉丝点击