Python学习 Day4
推导式(生成式)
1、列表推导式
作用:用一个表达式,创建一个有规律的列表或控制一个有规律的列表,用于简化代码
以创建一个0-10的空列表举例
for循环中不需要手动控制迭代变量自增
带 if 的列表推导式

多个for循环实现列表推导式
等同于for循环嵌套

2、字典推导式
作用:快速合并列表为字典或提取字典中的目标数据

3、集合推导式
集合具有去重功能
函数
将一段具有独立功能的代码块整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求。定义函数的时候,函数体内部缩进的代码并没有执行
1、函数定义

2、调用函数

3、函数参数的作用
形参:函数定义时书写的参数(非真实数据)
实参:函数调用时书写的参数(真实数据)

4、函数的返回值作用
在函数中,如果需要返回结果给用户需要使用函数返回值 return返回结果给函数调用的地方: return的作用: 1、负责函数返回 2、退出当前函数:导致return下方的所有代码(函数体内部)不执行
5、定义函数的说明文档

6、变量作用域
变量作用域指的是变量生效的范围,主要分局部变量和全局变量 局部变量:定义在函数体内部的变量,即只能在函数体内部生效。作用:在函数体内部,临时保存数据,即当函数调用完成后在,则销毁局部变量 全局变量:在函数体内、外都能生效的变量
6.1 修改全局变量的值
想要在函数体内部修改全局变量的值需要在函数内部进行声明,然后进行重新赋值即可修改

7、函数的返回值
当要返回多个返回值时需要用: return a,b 1、return a,b 的写法返回对各数据时,默认返回类型为元组 2、return后面可以连接列表,元组或字典,已返回多个值
8、函数的参数
8.1 位置参数
调用函数时根据函数定义的参数位置来传递参数

8.2 关键字参数
函数调用,通过“键 = 值” 形式加以指定,可以让函数更加清晰,容易使用,同时也清楚了函数的顺序需求。注意:函数调用时,如果有位置参数,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。

8.3 缺省参数
缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该参数(所有位置参数必须出现在默认参数前,包括函数定义和调用)。注意:函数调用时,如果为缺省参数传值则修改默认参数值,否则使用默认值

8.4 不定长参数
不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。此时,可用包裹(packing),或者关键字参数,来进行参数传递,会显得非常方便
8.4.1 包裹位置传递
注意:传进的所有参数都会被args变量收集,他会根据传进参数的位置合并为一个元组,args是元组类型,这就是包裹位置传递
8.4.2 包裹关键字传递

无论是包裹位置传递还是包裹关键字传递,都是一个组包过程
9、拆包和交换变量值
9.1 拆包:元组

9.2 拆包:字典
对字典进行拆包取出来是的字典的key

9.3 交换变量的值

10、引用
在python中,值都是靠引用来传递的
可以用 id() 来判断两个变量是否为同一个值,可以将id()值理解为那块内存的地址标识
不可变类型
可变类型

10.1 引用当实参使用

11、可变和不可变
所谓可变数据类型与不可变数据类型:数据能够直接进行修改,如果能直接修改那就是可变,否则是不可变
可变数据类型:列表、字典、集合 不可变数据类型:整型、浮点型、字符串、元组
