Python的元组与列表类似,不同之处在于元组的元素不能修改。()list [] tup {} dict
字典{}
字典是另一种可变容器模型,且可存储任意类型对象。
函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段
2.语法:
def 函数名(参数列表):
函数体
return XXX
可以返回多个值,返回的多个值组成一个元组,返回值加上一对中括号,则返回一个列表
函数分为定义和调用
可更改(mutable)与不可更改(immutable)对象
在python中,字符串,元组和数字是不可更改的对象,而list,dict等则是可以修改的对象。
不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
python 函数的参数传递:
不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
可变类型:类似c ++的引用传递,如列表,字典。如fun(la),则是将la真正的传过去,修改后的乐趣外部的LA也会受影响
调用函数时可使用的正式参数类型:
关键字参数:关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个字典
默认参数:(缺省参数)缺省参数必须写在后面,可以不指定参数名,但是顺序要保证,否则要指定参数名
不定长参数(可变参数):可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple 但是调用的时候,需要先组装出一个list或tuple
组合参数
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用,除了可变参数无法和命名关键字参数混合。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数/命名关键字参数和关键字参数。
Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。
默认参数一定要用不可变对象,如果是可变对象,程序运行时会有逻辑错误!
要注意定义可变参数和关键字参数的语法:
*args是可变参数,args接收的是一个tuple;
**kw是关键字参数,kw接收的是一个dict。
变量作用域:
全局变量与局部变量的作用域不同
生命周期不同当全局变量和局部变量同名时,局部变量优先