# 函数定义 """ def 函数名(): 代码逻辑 """ # 注意 """ 1、一次定义,多次调用 2、如果函数名重复,后面会覆盖前面的函数 3、python中函数是没有预解析 必须先定义后调用 """ # 函数作用 """ 1、对某个功能模块的封装 2、减少代码冗余 3、提高代码复用性(重复使用) 4、提高开发效率,便于后期维护升级 """ def func(): print('hello') print('今天是周二') # 有参函数的定义 """ 形参 = 形式参数 def 函数名(形参1,形参2,...) 代码逻辑 """ # 有参函数的调用 """ 实参 = 实际参数 函数名(实参一,实参二,...) """ def addSum(a,b): """ 计算两个数值的和 并返回结果 :param a: 一个数字 :param b: 一个数字 :return: 返回两个数字的求和结果 """ ret = a + b return ret num = addSum(10,20) print(num)
函数调用方式: def print_info(name,age): print('我的名字叫:%s ' % name) print('我今年:%d 岁了' % age) # 位置参数调用函数 # 实参和形参的位置要一一对应 # print_info('小明',20) # 关键字参数调用函数 # 在调用函数的时候,形参名字要书写正确 print_info(age= 20,name= '小明') def print_info1(name,age=18): print('我的名字叫:%s ' % name) print('我今年:%d 岁了' % age) """ 缺省参数-默认参数 概念:如果定义了一个函数,且有参数,而且参数设置了默认值 作用:简化了函数的调用 特点: 1、在函数调用的时候,如果没有传入实参,则会使用默认值 2、在函数调用的时候,如果传入了实参,则会覆盖默认值 """ print_info1('小米') print_info1('小明') print_info1('老王',30) """ 不定长参数 -元组 格式: def 函数名(*args): pass 占位符 求n个数之和 """ def addNum(*args): sum = 0 for values in args: sum += values return sum ret = addNum(1,2,3,4,5,6,7,8,9,10) print(ret) """ 不定长参数-字典 格式: def 函数名(**kwargs): pass """ def func(**kwargs): print(type(kwargs)) print(kwargs) func(name = '小明',age = 18)
函数应用 # 写一个函数打印一条横线 def print_line(): print('='*30) # 打印自定义行数的横线 def print_lines(num): # print_line()函数已经实现了打印横线的功能,只需多次调用即可 for i in range(num): print_line() # 函数嵌套 print_lines(2) # 写一个函数求三个数的和 def addSum(a,b,c): ret = a + b + c return ret num = addSum(10,2,15) print(num) # 写一个函数求三个数的平均值 def averNum(num1,num2,num3): ret1 = addSum(num1,num2,num3) return ret1 / 3 ret2 = averNum(10,20,30) print(ret2)
# 顺序:标准参数、缺省参数(默认)、不定长参数-元组、不定长参数-字典 def func(a,b=10,*args,**kwargs): print('a',a) print('b',b) print('args',args) print('kwargs',kwargs) func(1,2,3,4,5,6,7,8,name='老王')