-
函数的特点
- 功能性
- 隐藏细节,封装性
- 避免编写重复代码
-
自定义函数
# return不定义就默认返回None def plus(x, y): return x + y # return返回多个值的时候,就用返回一个元祖,用序列解包的方式就可以接收 def plus_reduce(x, y): return x + y, x - y num1, num2 = plus_reduce(2, 1)
- Python是解释性语言,函数要先定义,才能调用
- 函数碰到return之后,就会被终止
- 返回的类型不需要定义
- 序列解包
# 序列解包,元素个数要相等 e = 1, 2, 3, 4 a, b, c, d = e # 链式赋值 a, b, c = 1, 2, 3 a = b = c = 1
-
函数的参数
- 形参:在函数定义的时候写的参数
实参:函数调用的时候传入的参数 - 必须参数 必须参数的参数
- 关键字参数(在函数调用的时候,明确指出调用参数的形参的名字,这样可以不考虑顺序进行赋值操作,
用关键字参数指定参数,跳过默认必须输入参数顺序的限制,关键字参数始终是在必须参数输完之后作为一种补充的形式进行添加的。)
add(y = 2,x = 1)
- 默认参数(简化参数的输入,默认参数必须放在必须参数的后)
def add(x, y = 2): return print(x + y)
- 可变参数(可变参数放在第二位,默认参数放在最后)
def demo(name, *params, age = 18): print(name+str(age)) for i in params: print(i) # 可变参数传递的时候不可以再传入一个元祖,可以用*先解包平铺之后传递 data = (1, 2, 3) demo("wm", *data, age = 20)
- 任一个数的可变关键字参数,遍历方法
def city_temp(**params): for key, value in params.items(): print(key + ":" + value) city_temp(bj = "33c", nj = "34c", hk = "35c")
- 形参:在函数定义的时候写的参数
-
变量的作用域
# 函数外部定义的变量叫做全局变量 c = 10 def demo(): # 局部变量 c = 50 demo()
- global关键字:在函数中定义global关键字变量,就等同于调用全局变量(也是定义了一个全局变量)
def change_name(n): global name name = n name("warming") print(name)
- for循环 if else不存在块级作用域,所以在for if里面没有局部变量的概念
网友评论