Python 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。我们已经知道Python提供了许多内建函数,比如print()
。但我们也可以自己创建函数,这被叫做用户自定义函数。
定义一个函数
我们可以定义一个由自己想要功能的函数,以下是简单的规则:
- 函数代码块以
def
关键词开头,后接函数标识符名称
和圆括号()
。 - 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于
定义参数
。 - 函数的
第一行语句
可以选择性地使用文档字符串—用于存放函数说明
。 - 函数内容以
冒号
起始,并且缩进。 Return[expression]
结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None
。
函数基本定义
函数(Function)指通过专门的代码组织,用来实现特定功能代码段,具有相对独立性,可供其他代码重复调用。
函数定义基本语法:
#!/usr/bin/python3 def 函数名( [参数] ): 函数体 return [返回值]
def 关键字
函数体: 函数体为实现函数功能的相关代码段。
返回值: return 语句后面空一格,跟需要返回的
定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。
Python里不用像C语言里需要先申明函数再使用。
如下实例调用了printme()
函数:
#!/usr/bin/python3
#定义函数
def printme(str):
print(str)
return;
printme("我要调用用户自定义函数!");
printme("在次调用同一函数!");
参数
以下是调用函数时可使用的正式参数类型:
- 必选参数:
fun(name, age)
- 默认参数:
fun(name='yjc', age=18)
- 可变参数:
fun(*args)
- 关键字参数:
fun(name, age, **kw)
- 命名关键字参数:
fun(name, age, *, city)
1. 必须参数
必选参数也称位置参数。必选参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
调用printme()
函数,你必须传入一个参数,不然会出现语法错误:
#!/usr/bin/python3
#定义函数
def printme(str):
print(str)
return;
printme()
输出 结果:
Traceback (most recent call last):
File "/Users/abbott/work list/pyproject/pydome/函数/def1.py", line 6, in <module>
printme()
TypeError: printme() missing 1 required positional argument: 'str
2. 默认参数
调用函数时,默认参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:
def printinfo(name, age=35):
print ("name", name);
print ("age",age);
return
#调用函数
printinfo("abbott")
printinfo("abott",50)
# 当不按顺序提供部分默认参数时,需要把参数名写上
printinfo(name="abbott",age=30)
输出结果:
name abbott
age 35
name abott
age 50
name abbott
age 30
3. 可变参数
在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。基本语法如下:
def functionname(*var_args_tuple):
function_suite
return[expression]
加*号的变量名会存放所有未命名的变量参数。如以下实例:
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
r = calc(1,2)
print(r)
输出结果:
5