函数
函数:将具有独立功能的代码块组织为一个整体
使用函数有两步:
1.定义函数 在函数中编写代码,实现功能
2.调用函数 执行函数中的功能
函数的优点 : 使用功能非常方便,减少重复的代码,有利于代码升级重构
格式 def 函数名(): #函数名也是标识符
函数调试
def func1():
print('*'*10)
print('func1')
print('*'*10)
func1()
函数参数
将数据传递到函数的内部,可以增加函数的通用性
步骤:1.设置形参:定义函数时设置的参数,给真实数据进行'占位'
2.设置实参:调用函数时设置的参数,要传递到函数内部的真实数据
def func_sum(num1,num2):
sum_num = num1 + num2
print('求和的结果为:%s' % sum_num)
def func_sub(num1,num2):
sub_num = num1 - num2
print('求差的结果为:%s' % sub_num)
func_sum(10,20) #>>>>求和的结果为:30
func_sub(10,20) #>>>>求差的结果为:-10
全局变量和局部变量
全局变量:在函数外部定义的变量.作用于整个程序
a = 1
def func1():
print(a)
func1() #>>>>1
print(a) #>>>>1
局部变量:在函数内部定义的变量,只在函数内部有用
def func1():
a = 1
print(a)
func1(a) #>>>1
print(a) #报错
函数中修改全局变量
a = 3
def func1():
global a
a = 10
print(a)
func1() #>>>10
print(a) #>>>10 将全局变量改成10
函数返回值
函数返回值:函数的执行结果
什么时候需要设置返回值:函数调用者需要使用函数执行结果进行进一步的处理
def func_sum(num1,num2):
sum_num = num1 +num2
return sum_num #返回求和的值
print(123) #函数一旦执行了return,后面的代码不会执行
data = func_sum(1,2)
print('*'*data) #>>>***
函数的嵌套调用
函数嵌套调用,在函数中调用另一个函数
def func1():
print('func1开始')
print('func1结束')
def func2():
print('func2开始')
func1()
print('func2结束')
func2() #>>>func2开始 func1开始 func1结束 func2结束
参数的详解
实参 argumen 形参 parameter
实参类型:位置实参,关键字实参
位置实参:普通的实参,会按照参数的顺序传递数据给形参,要求实参和形参一一对应
def func1(num1,num2):
print(num1)
print(num2)
func1(1,2) #>>>1 2
关键字参数:可以将数据参数传递给指定的形参
关键字实参必须在位置实参的后边
def func1(num1,num2):
print(num1)
print(num2)
func1(num2=1,num1=2) #>>>2 1
默认形参 :可以给形参设置默认值 如果还类型参设置了实参.则使用实参的值
默认形参必须在普通形参后面
def func1(num1,num2=10):
print(num1)
print(num2)
func1(4) #>>>4 10
可变形参
元组型可变形参:可以接受任意数量的位置实参,将其转换为元组赋值给形参
在形参前加*,就标识该形参为元组型可变性惨
def func1(*args):
sum_num = 0
for num in args:
sum_num += num
print('和为%s' % sum_num)
func1(1,2,3,4,) #>>>和为10
字典型可变形参:可以接受任意数量的关键字实参,将其转化为字典赋值给形参
在形参前加**,就标识该形参为字典型可变形参
字典型可变形参必须在参数列表的最后面
def save_userinfo(**kwargs):
print('用户信息:%s' % kwargs)
save_userinfo(name='zs',age=22)#>>>>用户信息:{'name': 'zs', 'age': 22}
save_userinfo(name='ls',age=23,weight=75)#>>>用户信息:{'name': 'ls', 'age': 23, 'weight': 75