1. 函数: 封装一个功能
|def my_len(形参): -> def 声明定义一个函数 my_len 函数名命名规则同变量
|
| ······
| ······ -> ······ 函数体,书写代码实现所要的功能
| ······ -> 在函数体内使用形参进行操作,可对外部可变数据类型变量做内部修改
| ······
| return x -> 在此遇到 return 即返回,后面的不执行
| ······
|
|my_len(实参) -> 此处执行函数,即调用函数 需要先声明定义,再调用 格式: 函数名 + ()
传参:
my_print(‘123‘, ‘abc‘, ‘撒旦’) 位置传参, 即依据(具体实参值)一一对应传递给形参
my_print(b=‘123‘, c=‘abc‘, a=‘撒旦’) 关键字传参,即依据(形参名)传递实参
my_print(‘123‘, b=‘abc‘, c=‘撒旦’) 混合传参, 即(关键字传参)必须全部在(位置传参)后面。
默认参数:
def my_print(a,b,c=None,d={}) 设有默认值的形参 必须全部在 无默认值的形参 后面。
关于在函数内部,引用外部的(可变数据类型的变量list,dict)与引用外部的(不可变数据类型的变量如int,str)的区别:
参考:https://www.cnblogs.com/kayb/p/7194006.html
(不能改变全局变量的指向。)
再强调一遍,if i is {} : 这样的比较,is比较的是内存地址,适用于小数据池。字典,列表等可变数据类型,无小数据池。