python课程第10天《函数》
一 基本语句:
def 函数名字(): # 定义函数名称
函数内的语句 # 调用函数时,执行的命令
return # 返回一个值,可选,不填的话返回None
函数名字() # 调用函数
二 特点:
可以在多出调用同一组代码!
三 返回值:
如果没有返回值的话:可能是因为每写return语句,或者是return后面没有跟变量。
同时,如果使用了return语句,就不会继续执行之后的语句。同样可以结束该函数。
如果有多个return语句的话,只执行第一个执行的return
1,返回1个值:
可以返回字符串,列表,字典等等单个的任何数据类型。
只要返回了数据类型,就可以被接收到。
2,返回两个以上的值:
return 返回结果1,返回结果2 #就可以去返回多个返回值了
同样,返回n个值的时候,需要用n个变量去接受。如果接受变量和返回值数量不符的时候,会报错!
但是可以使用一个变量去接受多个返回值,但是这个变量最后会变成一个元组。
3,1个变量可以接受多个返回值的原因:
元组、列表是可以解包的,3个元素的元组、列表可以批量赋值给3个变量。
字典也是可以解包的,但是由于解包出来是无序的,所以不常用!
四 传入参数:
def 函数名(形参):
语句(其中可以调用传入的参数进行处理!
函数名称(传入的实参)
在调用函数的过程中可以传入参数!
参数包括形参和实参:形参类似于占位符,在设置函数的时候进行定义,在调用函数的时候将导入实参,即包含实际数据的参数!
注意:在最近做的ATM程序中,想要继承上一级函数的参数的时候可以使用传参功能,而可以不使用global语句!这里应该是之前学的知识没有用到
实处导致的!
五 参数的类型:
位置参数:按照位置进行传入的参数 :
函数名称(1,2)
关键字传参:按照形参名字进行传参:
函数名(a = 1,b =1)
注意:可以两种传参一起用,但是必须先使用关键传参,之后再使用位置传参。否则可能导致一个形参得到两个实参,而报错!
位置参数必须传入参数,否则报错。
关键字传参是可以定义默认值的。
在形参中,默认值一定要放在位置参数之后!
动态参数:*args:可以接受任意数量的参数。后面的args意思是很多arguments的意思!(接受按照位置传参的值,组织成一个元组)
*可以把后面的参数编程一个动态参数,可以无限多地接受参数!
动态参数如果不传参数,就返回一个空的元组!
动态参数应该放在所有位置参数之后!但是应该放在默认参数之前!
动态参数是不能接受按照关键字传参的功能。
动态参数2:**kwargs:可以接受用key = value进行传入。这时候,得到的就是一个字典的数据类型了。(接受的是按照关键字传参的值,组成一个字典!)
注意:以上两种接受方式是可以同时使用的!
参数的顺序总结:位置参数、动态元组参数、默认参数、动态字典参数。
六 一些常见的问题:
想把列表里的所有元素传到一个动态参数中?
传列表里的元素为参数!
def func(*args):
print(args)
l = [1,2,3,4,5]
func(*l)
>>>(1,2,3,4,5)
传字典中的键值对为参数!
def func(**kwargs):
print(kwargs)
d = {'a' : 1,'b' : 2,'c' : 3}
func(**d)
>>>{'a' : 1,'b' : 2,'c' : 3}
七 给函数增加备注:
在函数的开头直接写一个长字符串,就可以对函数进行注释
格式:
对函数进行大体说明
再对参数进行具体说明
再说return返回的是什么东西
按照这个顺序进行说明,才是标准的格式!