| 函数的定义函数代码块以 def 关键词开头,后接函数名称和圆括号 ()。任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
 函数内容以冒号起始,并且缩进。
 return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None,返回多个值时调用方将获取一个tuple(元组)。
 
def 函数名称([形参]):
    """
[函数的说明文字信息]
    """
	[函数体]
	return [表达式]
函数名称([实参])
 空函数:一个什么事也不做的函数,用来占位,函数体就是一个pass语句。 def nop():
    pass
 函数的参数参数的作用函数调用的时候,给函数传递若干个变量。 参数的分类参数可分为形参和实参两种类型。 形参在函数定义的时候,需要准备一些变量来接收信息。 位置参数, 按照位置一个一个的去声明变量
 def run(name, length):
    print('%s跑步%d公里' % (name, length))
 默认值参数, 在函数声明的时候给变量一个默认值, 如果实参不传递信息. 此时默认值生效, 否则就不生效
 def info(name, age, gender='男'):
    print(name, age, gender)
info('张无忌', 20)             
info('张三丰', 70)             
info('赵敏', 18, gender='女')  
 动态传参.*args, 表示接收所有的位置参数的动态传参
 def meeting(name, *args):
    print('会议主持:', name)
    print('与会人员:', args)
meeting('张无忌', '谢逊', '张三丰', '赵敏', '周芷若')
'''
会议主持: 张无忌
与会人员: ('谢逊', '张三丰', '赵敏', '周芷若')
'''
meeting('许三多', '伍六一', '甘小宁', '马小帅')
'''
会议主持: 许三多
与会人员: ('伍六一', '甘小宁', '马小帅')
'''
 ** kwargs,表示接收所有的关键字的动态传参 def book_info(name, **kwargs):
    print('书名:', name)
    print('信息:', kwargs)
book_info('红楼梦', author='曹雪芹', time='清代', words='约96万')
'''
书名: 红楼梦
信息: {'author': '曹雪芹', 'time': '清代', 'words': '约96万'}
'''
book_info('西游记', author='吴承恩', time='明代')
'''
书名: 西游记
信息: {'author': '吴承恩', 'time': '明代'}
'''
 顺序位置 > *args > 默认值 > **kwargs
 【注】上述参数可以随意搭配使用 实参实际在调用的时候传递的信息 位置参数:按照位置进行传递参数
 def run(name, length):
    print('%s跑步%d公里' % (name, length))
run('李四', 2)        
run('王五', 5)        
 关键字参数:按照参数的名字进行传递参数
 def info(name, age, gender):
    print(name, age, gender)
info(name='赵敏', age=18, gender='女')     
info(age=20, name='张无忌', gender='男')    
 混合参数:位置参数与关键字参数一起使用
 open("xxxx", mode="xx", encoding="xxx")
 顺序位置参数放前面, 关键字参数放后面
 【注】实参在执行的时候. 必须要保障形参有数据 参数的其它情况 def func(*args, **kwargs):  
     print(args, kwargs)
 people = ['许三多', '史今', '伍六一', '成才', '甘小宁', '马小帅']
def func(*args):
    print(args)
func(*people)   
 函数的返回值函数执行之后,会给调用方一个结果,这个结果就是返回值。 函数只要执行到了return,便会立即停止并返回内容,return后面的代码不再执行。如果函数内没有return , 此时外界收到的是None;
 如果写了return:
 1.只写了return, 后面不跟数据, 此时接收到的依然是None -> 相当于break
 2.
 return 值, 此时表示函数有一个返回值, 外界能够收到一个数据 -> 用的最多3.
 return 值1, 值2, 值3....., 此时函数有多个返回值, 外界收到的是元组, 并且该元组内存放所有的返回值。 |