函数式python编程的简单介绍( 五 )


Python3.5以上的版本支持使用**来解压一个dict:
set是用来存储 不重复元素 的容器 , 当中的元素都是不同的 , 相同的元素会被删除 。我们可以通过set(),或者通过{}来进行初始化 。注意当我们使用{}的时候 , 必须要传入数据,否则Python会将它和dict弄混 。
set当中的元素也必须是不可变对象,因此list不能传入set 。
可以调用add方法为set插入元素:
set还可以被认为是集合,所以它还支持一些集合交叉并补的操作 。
set还支持 超集和子集的判断,我们可以用大于等于和小于等于号判断一个set是不是另一个的超集或子集:
和dict一样,我们可以使用in判断元素在不在set当中 。用copy可以拷贝一个set 。
Python当中的判断语句非常简单 , 并且Python不支持switch,所以即使是多个条件,我们也只能 罗列if-else。
我们可以用in来循环迭代一个list当中的内容,这也是Python当中基本的循环方式 。
如果我们要循环一个范围,可以使用range 。range加上一个参数表示从0开始的序列,比如range(10),表示[0, 10)区间内的所有整数:
如果我们传入两个参数,则 代表迭代区间的首尾。
如果我们传入第三个元素,表示每次 循环变量自增的步长。
如果使用enumerate函数,可以 同时迭代一个list的下标和元素 :
while循环和C++类似,当条件为True时执行,为false时退出 。并且判断条件不需要加上括号:
Python当中使用 try和except捕获异常 ,我们可以在except后面限制异常的类型 。如果有多个类型可以写多个except,还可以使用else语句表示其他所有的类型 。finally语句内的语法 无论是否会触发异常都必定执行 :
在Python当中我们经常会使用资源,最常见的就是open打开一个文件 。我们 打开了文件句柄就一定要关闭  , 但是如果我们手动来编码 , 经常会忘记执行close操作 。并且如果文件异常,还会触发异常 。这个时候我们可以使用with语句来代替这部分处理,使用with会 自动在with块执行结束或者是触发异常时关闭打开的资源。
以下是with的几种用法和功能:
凡是可以使用in语句来迭代的对象都叫做 可迭代对象 ,它和迭代器不是一个含义 。这里只有可迭代对象的介绍 , 想要了解迭代器的具体内容 , 请移步传送门:
Python——五分钟带你弄懂迭代器与生成器,夯实代码能力
当我们调用dict当中的keys方法的时候 , 返回的结果就是一个可迭代对象 。
我们 不能使用下标来访问 可迭代对象,但我们可以用iter将它转化成迭代器,使用next关键字来获取下一个元素 。也可以将它转化成list类型,变成一个list 。
使用def关键字来定义函数,我们在传参的时候如果指定函数内的参数名,可以不按照函数定义的顺序 传参:
可以在参数名之前加上*表示任意长度的参数,参数会被转化成list:
也可以指定任意长度的关键字参数,在参数前加上**表示接受一个dict:
当然我们也可以两个都用上,这样可以接受任何参数:
传入参数的时候我们也可以使用*和**来解压list或者是dict:
Python中的参数 可以返回多个值 :
函数内部定义的变量即使和全局变量重名 , 也 不会覆盖全局变量的值。想要在函数内部使用全局变量,需要加上 global 关键字,表示这是一个全局变量:
Python支持 函数式编程,我们可以在一个函数内部返回一个函数:
Python中可以使用lambda表示 匿名函数 ,使用:作为分隔,:前面表示匿名函数的参数,:后面的是函数的返回值:

推荐阅读