作用
函数的作用,封装具体的功能,实现重复调用
函数定义
def 函数名(参数): # 参数是可选项
代码块
函数调用
函数名(参数) #如果函数定义是,参数是没有的,函数调用时,参数也为空。否则,函数调用的参数不为空
参数的种类
-
位置参数
函数调用时,实参的传递要照着形参的位置
def my_fun(name,age): print('我的名字叫%s,今年%i岁' % (name, age)) my_fun('python', 30)
形参是什么?实参是什么?网上很多讲的云里雾里的。
可以从它们两者的作用区分,形参是为了完成函数的定义,就如上面def my_fun(name,age),这时name和age有两个形参,让调用者知道调用函数时,要传递两个参数;
实参是为了完成函数的调用,给name,age两个变量传递值 -
关键字参数
关键字参数识别可以根据参数名称,参数过多的时候,位置参数不容易记忆位置去传递实参
-
默认参数
调用函数时,对默认参数可以传参,也可以不传参
def my_fun(num=1): return 10/num print(my_fun()) print(my_fun(2))
不定数量的形参
-
不定数量的位置形参*param
def my_fun(*python): if len(python) <= 0 or len(python) >= 4: return my_str = '' if len(python) >= 1: my_str += '我的名字叫%s' % python[0] if len(python) >=2 : my_str += '今年%i岁' % python[1] if len(python) >=3 : my_str += '编程语言排行第%i' % python[2] return my_str print(my_fun('python')) print(my_fun('python', 30)) print(my_fun('python', 30,3)) """ -------------输出结果--------------- 我的名字叫python 我的名字叫python今年30岁 我的名字叫python今年30岁编程语言排行第3 """
-
不定数量的关键字形参**param
从不定数量的位置形参的例子中看,调用函数时,要保证传递参数的位置正确。当参数过多时,不容易维护和调用,这时候可以用关键参数
def my_fun(**python): if len(python) <= 0 or len(python) >= 4: return my_str = '' if len(python) >= 1: my_str += '我的名字叫%s' % python['name'] # 位置是通过索引来引用,而关键字参数是通过key if len(python) >=2 : my_str += '今年%i岁' % python['age'] if len(python) >=3 : my_str += '编程语言排行第%i' % python['ranking'] return my_str print(my_fun(name='python', age=30,ranking=3)) """ -------------输出结果--------------- 我的名字叫python今年30岁编程语言排行第3 """
返回值
返回值None1: 如果 函数中没有返回值,系统默认会返回None。也可以自己显式返回None
返回值多个:返回列表或元组
参数收集和逆向参数收集区别
-
参数收集是在定义函数时,不确定参数的个数时用的
-
逆向参数收集是在调用函数时,在确定参数的个数时,传递元组和列表的实参。调用函数时,传递的实参前面要带星号
def my_fun(name,age):
print('我的名字叫%s,今年%i岁' % (name, age))
my_param = ('python', 30)
my_fun(*my_param)
None在Python,是NoneType类型。NoneType类型只有一个常量None,代表空值 ↩︎