Python 函数
(一)函数的创建与调用
(1)创建一个函数
具体语法格式
def 函数名(参数列表):
//实现特定功能的多行代码
[return [返回值]]
(2)调用函数
调用函数也就是执行函数。如果把创建的函数理解为一个具有某种用途的工具,那么调用函数就相当于使用该工具。
[返回值] = 函数名([形参值])
(二)参数传递
(1) 形参与实参
在使用函数时,经常会用到形式参数(简称“形参”)和实际参数(简称“实参”),二者都叫参数,之间的区别是:
形式参数:在定义函数时,函数名后面括号中的参数就是形式参数,例如:
#定义函数时,这里的函数参数 obj 就是形式参数
def demo(obj)
print(obj)
实际参数:在调用函数时,函数名后面括号中的参数称为实际参数,也就是函数的调用者给函数的参数。例如:
a = "python"
#调用已经定义好的 demo 函数,此时传入的函数参数 a 就是实际参数
demo(a)
(2) 函数文档
我们还可以为函数编写说明文档,是为了让别人更好的理解你的函数。只要把一段字符串放在函数声明之后、函数体之前,这段字符串将被作为函数的部分,这个文档就是函数的说明文档。
通过调用 Python 的 help() 内置函数或者 doc 属性,我们可以查看某个函数的使用说明文档。
>>> def str_max(str1,str2):
"""
定义一个比较字符串大小的函数
"""
if len(str1) > len(str2):
print (str1)
else:
print (str2)
>>> str_max("123","1234")
1234
# 使用help()函数查看my_max的帮助文档
>>> help(str_max)
Help on function str_max in module __main__:
str_max(str1, str2)
定义一个比较字符串大小的函数
#通过 doc 属性访问该函数的说明文档。
>>> print(str_max.__doc__)
定义一个比较字符串大小的函数
(3) 关键字参数
关键字参数允许你传入0个或任意多个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数,以扩展函数的功能
>>> def dis_str(str1,str2):
print("str1:",str1)
print("str2:",str2)
>>> #位置参数
dis_str("i love","python")
str1: i love
str2: python
>>> #关键字参数
dis_str("i",str2="love python")
str1: i
str2: love python
>>> dis_str(str2="python",str1="i love")
str1: i love
str2: python
(4) 默认参数
在调用函数时如果不指定某个参数,Python 解释器会抛出异常。为了解决这个问题,Python 允许为参数设置默认值,即在定义函数时,直接给形式参数指定一个默认值。这样的话,即便调用函数时没有给拥有默认值的形参传递参数,该参数可以直接使用定义函数时设置的默认值。
#str1没有默认参数,str2有默认参数
>>> def dis_str(str1,str2 = "python"):
print("str1:",str1)
print("str2:",str2)
>>> dis_str("i love")
str1: i love
str2: python
>>> dis_str("I","LOVE PYTHON")
str1: I
str2: LOVE PYTHON