目录
因为python是解释型语言,所以函数必须先定义后调用
1.无参函数
# 定义无参函数
def say_hello():
'''
该函数的作用是打招呼
:return:
'''
print('hello')
print('您好')
print('Bonjour')
# 调用
say_hello()
2.有参函数
# 定义有参求和参数
# 定义函数的时候,参数叫做形参,形式参数
# 限定传入的参数为int类型
def my_sum(x: int, y: int):
result = x + y
print(result)
# 调用参数
# 调用参数的时候,参数叫做实参,实际参数
# 传递实际参数的时候,对类型没有限制,但实际运行需要看函数处理逻辑
my_sum(1, 10)
2.1 有返回值函数
# 返回值 ,可以将结果做后续操作
def my_sum1(x: int, y: int):
'''
:param x:
:param y:
:return:
'''
result = x + y
return result
sum1 = my_sum1(50,40)
print(sum1*2)
# 180
3.函数嵌套调用
# 函数嵌套调用
# 计算三个数的平均值并返回
def func_1(num1, num2, num3):
return num1 + num2 + num3
def func_2(num1, num2, num3):
# 先求和
sum1 = func_1(num1, num2, num3)
# 再求平均值
return sum1 / 3
avg_num = (func_2(10, 20, 30))
print(f'平均值为{avg_num}')
4.局部与全局变量
num = 10 # 声明全局变量
# 全局变量
def func1():
print('func1:', num) # 访问全局变量num
func1()
def func2():
# 这里相当于在函数内部定义了一个局部变量,也叫num,它的值为:10,它和全局变量没有关系
num = 20 # 声明局部变量
print('func2:', num) # 使用局部变量
func2()
def func3():
# 需求:在 func3 函数调用时,修改全局变量 num,把它的值改为:10
# global一个关键字,这个关键字的作用是告诉 python 解释器,接下来使用的 num 是全局变量的 num
# 下面这句代码叫
global num # 声明 全局变量
# 因为是全局变量,当func3函数被调用时,执行到这里时,全局的num都会修改
num = 30 # 修改 num的值
print('func3:此时刚刚修改了全局变量num的值')
print('func3:', num)
func3()
print(num)
func1()
func2()
5.不定长参数
# 元组不定长参数,用1个 * 来声明,传入时是个元组
def func4(*args):
print(type(args), args)
return 111
ret = func4(1,3,5)
# 字典不定长参数,用2个 ** 来声明,传入时是个字典
def func5(**kwargs):
print(type(kwargs), kwargs)
func5(
name='彦祖',
age=18,
gender='男'
)
# 函数不同形式的参数有顺序要求:普通参数,元组不定长参数,缺省参数,字典不定长参数
def func6(my_int, *args, name='德华', **kwargs):
print(my_int)
print(args)
print(name)
print(kwargs)
func6(1, 2, 3, 4, name='柏芝', age=16, gender='女')