---------------------------------------------------------------------------------------------------------------------------------
-
定义方法
- 原则:序列结构
def funcname(parameter,perameter):
pass # 代码执行模块
return value # 函数返回值,没有编写则默认为none,且标志程序结束
---------------------------------------------------------------------------------
#eg.编写加减法程序,返回加法和减法值
def add_and_sub(a,b):
add = a + b
sub = a - b
return add, sub
#调用函数并打印 add 和 sub 的值
m,n = add_and_sub ( 88,77 ) # 设定两个变量接收元组元素
print('加法值为=', m, '减法值为=', n)
k = add_and_sub(88, 77) # 返回元组 tuple 类型
print('函数返回内容为', k, '函数返回值类型为',type(k))
-
参数类型
-
关键字参数
- 无视序列解构
-
默认值参数
- 函数定义域内赋值
-
可变参数
- def variable(*value)
- * 表示序列类型的可变参数
- type(value)为‘tuple’
- * *表示字典类型的可变参数
- * 表示序列类型的可变参数
- def variable(*value)
-
# 示例:
# 原函数
def add_and_sub(a,b):
add = a + b
sub = a - b
return add, sub
c = add_and_sub(88, 77)
c = (165,11)
--------------------------------------------------------------------------------
# 关键字参数
# 改动位置
c = add_and_sub(b=88, a=77) # 关键字参数,调用时定义,无视序列结构规则
# 结果
c = (165, -11)
--------------------------------------------------------------------------------
# 默认值参数
# 改动位置
def add_and_sub(a,b=77): # 设置默认值,并且默认值参数要置后
c = add_and_sub(99) # 序列解构,若此处赋值给b=99,则覆盖默认值,执行b=99
# 结果
c = (176, 22)
--------------------------------------------------------------------------------
- 可变参数运行机理:
# 可变参数示例
# eg.点菜场景,data:食物(多)+桌号(单)
def variable(*food,number):
print('第', number, '桌客人的菜单')
for i in food:
print(i)
food = ['pineapple','shark','water'] # 将可变参数存储在list里,系统执行list为变量
variable(food, number = '12') # 没有达到可变参数目的
def variable(*food,number):
print('第', number, '桌客人的菜单')
for i in food:
print(i)
variable('pineapple','shark','water', number = '12')
# 将 变量内容 直接导入 可变参数位置
# 其余变量(如:number), 需设置关键字变量,因为程序无法自动识别
-
变量作用域
-
局部变量
- 作用于函数内部
- 内部采用全局变量
- eg.需要全局变量x, 则函数内部插入语句global x
-
全局变量
- 作用于全局
-