函数:
函数以def开头,后面接函数名和括号,然后接冒号:
函数的最后接return结束函数,并返回一个值,可以没有,就相当于返回None
函数调用时直接用函数名加括号 括号内为需要传入的参数。
传入函数的参数是实参 在函数内使用的大多都为形参 形参只能在函数内使用,函数结束后就自动释放内存了。
函数中的参数:
- 位置参数:函数中最常用的一种参数,按照位置将实参传入函数内的形参。
- 默认参数:必须放在位置参数后面的一种参数,如果输入值,则按照输入的值,没有输入,则按照默认值。
- 可变函数:*args,程序会自动将后面的所有值组装为元组,同样不能放在位置参数前面。
- 关键字参数:**kw 将数值组装为字典。
- 命名关键字参数:*,nkw 给输入的关键参数命名,输入时不能缺少参数名。
函数的返回值:
函数可以返回任意类型的参数,也可以没有返回函数,返回None
变量作用域:
变量分为局部变量和全局变量
函数内部修改全局变量 用global关键字声明,来修改。
修改另一个闭包作用域中的变量使用nonlocal关键字。
递归:函数自己调用自身即为递归。
Lambda表达式:
python可以用def加函数名创建新函数,也可以用lambda为关键词来创建匿名函数。
练习题:
- 在函数中单独一行用双引号括起来的文字就为函数的解释文档
- 参数注解在参数名后加上:加数据类型,返回值注解在括号后加上->再加上数据类型。
- 使用nonlocal关键字加参数名 在进行修改
- a=[[6, 5], [3, 7], [2, 8]]
x = sorted(a, key=lambda a: a[0])
x = sorted(a, key=lambda a: a[1])
def hanoi(n,x,y,z):
if n ==1:
print(x,' --> ',z)
else:
hanoi(n-1,x,z,y)
print(x,' --> ',z)
hanoi(n-1,y,x,z)
n = int(input('请输入汉诺塔的层数:'))
hanoi(n,'a','b','c')
心得: 累 !- !