1.建立函数:
def 函数名(形参):
函数体(记得写缩进)
return 返回值(python中可以没有return)
2.调用函数:
函数名(实参)
实参和形参个数相等即可,类型不需要相同
其中接收返回值与C中的差不多
3.如果只是定义而不调用则函数不会执行
4.先定义函数,后调用
5.python中可以让计算机忽略某行的警告(没啥意义)
6.函数的返回值可以不用变量去接收而直接打印
例
7.函数功能尽量单一(例如:让逻辑和交互分离)
8.函数尽量低耦合
9.在python中,缩进真的很重要
10.return 和C一样(但是调用函数后可以返回多个值)
例子:
此时若只想拿到其中的一个返回值,则这样做:
11.可以这样赋值:
a,b=10,20
12.变量会有作用域,与C应该一致
函数内部的变量名只能在函数内部生效
关于那个全局变量和局部变量同名的情况:
与C一致
但是若想在函数内部修改全局变量,则要加一个关键字 global,否则就是创立一个局部变量
例子:
但是关于那个变量的作用域,有个特殊的点,就是只有在函数内部才能创立局部变量,
在if,for,while等代码块中创立的变量是全局变量
13.调试器:
用好断点
新始:
5.链式调用
用一个函数的返回值作为另一个函数的参数
如:
嵌入的层次不要太深
6.嵌套调用:
像那个上边那个的printf一样,就是在一个函数里边调用另外一个函数(应该可同可不同)
7.每个函数在被调用时都用生成各自对应的函数栈帧,调用完成时栈帧销毁,各自创建的局部变量待在各自的函数栈帧之中(每个栈帧也是保存在内存中)
8.函数递归:
与C大体一致
理解简单,但代码执行过程较复杂
容易栈溢出
所以汤说将递归问题转化为循环问题去写,而且运行速度会更快,少用递归
9.做编程问题,多多画图
10.搜没什么用
11.函数形参的默认值:
如:
但是带有默认值的参数不能够放在没带默认参数的前边,不然报错
12.在函数调用传参步骤中,可以指定某个参数传参
如: