温故知新python3--基础知识3(函数高级特性)
2017-08-21 16:52
411 查看
生活的乐趣属于敢闯敢为的开拓者,而非空想不做的看客。
以下内容为个人学习“廖雪峰python3教程”的学习笔记。
参考网站:
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
利用python3中的高级特性,可以减少代码量,提高开发速率。
常见的高级特性有:
1)针对list和str的slice(切片)操作:类似于matlab语言,举个例子,L[:3]可以得到前三个成员。
2)迭代:只要是可以迭代的对象,不管有无下标,都可以使用for… in…格式来访问其所有成员。其中dict的访问比较特殊:A)访问dict的key:for key in dict;B)访问dict的value:for value in dict.values( );C)同时得到dict中的key和value:for key, value in dict.items( )。 可以看出,迭代时,迭代量可以不止一个。 此外字符串中的每一个字符也可以用迭代的方式访问。
3)列表生成式:“[变量或包含变量的表达式 操作1 操作2]”生成操作1、2指定的列表。比如:
4)生成器:列表生成式的好处在于初始化列表时操作极其简单,但是对于如斐波拉契数列之类的无穷数列,无法用列表生成式生成,同时,如果生成了包含大量成员的列表,将极大地占用内存空间。为了规避这两个缺点,引入了generator(生成器)。
生成器:用于储存初始化成员的算法,其初始化的方法与列表类似,但是使用的符号是圆弧括号( )而非方括号[ ],可以使用next(generator)访问generator的下一个成员,或者直接使用for遍历其所有成员。
如:
可以看出generator并不是储存每一个成员,而是储存算法,在被调用时再计算出成员的数值。
yield与return的区别:
函数执行到return时,返回return后的内容,下次被调用时仍然从头开始执行函数。
函数执行到yield时,返回yield后的内容,下次被调用时,从上次执行完的yield语句的下一句继续执行。
python3”异常“语法:
对代码块进行执行,如果出现错误,则将错误赋给变量,执行相关操作。
对可迭代对象,迭代到无法返回下一个值时,会抛出StopIteration的错误。
5)迭代器:可以被next( )函数调用并不断返回下一个值的对象称为迭代器,generator属于迭代器,list、set等不属于迭代器。因此,可迭代不一定是迭代器,迭代器一定可迭代。
以下内容为个人学习“廖雪峰python3教程”的学习笔记。
参考网站:
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
利用python3中的高级特性,可以减少代码量,提高开发速率。
常见的高级特性有:
1)针对list和str的slice(切片)操作:类似于matlab语言,举个例子,L[:3]可以得到前三个成员。
2)迭代:只要是可以迭代的对象,不管有无下标,都可以使用for… in…格式来访问其所有成员。其中dict的访问比较特殊:A)访问dict的key:for key in dict;B)访问dict的value:for value in dict.values( );C)同时得到dict中的key和value:for key, value in dict.items( )。 可以看出,迭代时,迭代量可以不止一个。 此外字符串中的每一个字符也可以用迭代的方式访问。
3)列表生成式:“[变量或包含变量的表达式 操作1 操作2]”生成操作1、2指定的列表。比如:
>>> [m + n for m in 'ABC' for n in 'XYZ'] ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
4)生成器:列表生成式的好处在于初始化列表时操作极其简单,但是对于如斐波拉契数列之类的无穷数列,无法用列表生成式生成,同时,如果生成了包含大量成员的列表,将极大地占用内存空间。为了规避这两个缺点,引入了generator(生成器)。
生成器:用于储存初始化成员的算法,其初始化的方法与列表类似,但是使用的符号是圆弧括号( )而非方括号[ ],可以使用next(generator)访问generator的下一个成员,或者直接使用for遍历其所有成员。
如:
>>>g = ( n*n for n in range(100)) >>>g <generator object <genexpr> at 0x03A265A0>
可以看出generator并不是储存每一个成员,而是储存算法,在被调用时再计算出成员的数值。
yield与return的区别:
函数执行到return时,返回return后的内容,下次被调用时仍然从头开始执行函数。
函数执行到yield时,返回yield后的内容,下次被调用时,从上次执行完的yield语句的下一句继续执行。
python3”异常“语法:
try: 代码块 except 错误类型 as 变量: 错误类型处理
对代码块进行执行,如果出现错误,则将错误赋给变量,执行相关操作。
对可迭代对象,迭代到无法返回下一个值时,会抛出StopIteration的错误。
5)迭代器:可以被next( )函数调用并不断返回下一个值的对象称为迭代器,generator属于迭代器,list、set等不属于迭代器。因此,可迭代不一定是迭代器,迭代器一定可迭代。
相关文章推荐
- Python学习1——基础、函数、高级特性
- python基础3之函数高级特性
- python基础知识5(集合,高级特性,高阶函数)
- 温故知新python3--基础知识2(函数基础)
- 廖雪峰Python的研读笔记(一) Python基础、函数、高级特性
- python基础知识(二)python高级特性
- python基础知识——函数
- Python基础知识详解(数据类型、函数、包)
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(2)-- 变量和常用数据类型
- Python3 基础:高级特性-列表生成式和生成器
- [Python学习] 专题一.函数的基础知识
- 关于python的基础知识12--方法/函数
- python基础知识---抽象--函数
- Python入门基础之高级特性(四)
- Python 第一章 基础知识(6) 函数
- Python 专题一 函数的基础知识
- Python基础知识:函数、三元函数、lambda函数
- Python基础知识- 函数定义,参数问题(hard)
- Python基础-高级-返回函数
- 关于python的基础知识2--函数