Python基础(四)函数
python基础(四)
1、初始函数
1.1、介绍
在编写程序的过程中,有某一功能代码块出现多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。
函数其实就是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
1.2、定义函数
# 用 [] 括起来的为可选择部分,即可以使用,也可以省略
def 函数名([参数列表]):
代码块
[return [返回值]]
1.3、函数调用
函数调用:本质就是执行函数中的代码块。(先定义,后调用)
# 用 [] 括起来的为可选择部分,即可以使用,也可以省略
[返回值] = 函数名([形参值])
1.4、例子
# 无参函数定义
def sayHello():
'''
函数说明
:return:
'''
# 函数代码块
print('hello word')
print('hello python')
pass
# 函数调用
sayHello();
sayHello();
# 输出结果
# hello word
# hello python
# hello word
# hello python
# 带参函数定义
def saynameHello(name, age):
'''
函数说明
:return:
'''
# 函数代码块
print('%s say hello word %d' % (name, age))
print('%s say hello python' % (name))
pass
saynameHello('张三', 18)
saynameHello('李四', 28)
# 输出
# 张三 say hello word 18
# 张三 say hello python
# 李四 say hello word 28
# 李四 say hello python
2、函数参数
2.1、参数作用
在函数实现或完成某个功能时,为实现该功能而需要的外部数据,而通过定义的参数,实现数据的传递。
简单来说,
函数:实现某一功能
参数:给函数提供所需的数据
2.2、参数分类
-
必选参数
-
在调用时必须进行赋值操作的
-
def sun(a, b): sum = a + b return sum # 函数调用 在调用时必选参数 是必选进行赋值的 print(sun(2, 3)) # 5
-
-
可变参数(不定长参数)
-
可变参数 当参数的个数不确定时使用
-
可变参数是一个元组类型
-
# 可变参数 当参数的个数不确定时使用 def sum(a, *args): print(args) # (2, 3, 4) sum = a for i in args: sum += i return sum print(sum(1, 2, 3, 4)) # 10
-
-
默认参数(缺省参数)
-
缺省参数 在函数定义时进行赋值,即在初始调用时就拥有了一个默认值
-
在调用函数时如果对有缺省值的参数未进行赋值,就会使用定义函数时的缺省值,反之使用传输的实参值
-
缺省参数 始终存在于参数列表的尾部,否则无法使用缺省值
-
# 缺省参数 在函数定义时进行赋值,即在初始调用时就拥有了一个默认值 # 在调用函数时如果对有缺省值的参数未进行赋值,就会使用定义函数时的缺省值,反之使用传输的实参值 # 缺省参数 始终存在于参数列表的尾部,否则无法使用缺省值。 def sun(a, b=10): sum = a + b return sum # 函数调用 在调用时如果对有缺省值的参数未进行赋值,就会使用定义函数时的缺省值,反之使用传输的实参值 print(sun(2)) # 12 print(sun(2, 3)) # 5
-
-
关键字参数
-
关键字可变参数 在函数体内 参数关键字参数是一个字典类型
-
如果有可变参数需要在可变参数后
-
# 关键字可变参数 使用 **进行定义 # 在函数体内 参数关键字是一个字典类型 def keyFunc(**kwargs): print(kwargs) pass # 调用 dictA = {'name': 'li', 'age': 12} keyFunc(**dictA) # {'name': 'li', 'age': 12} keyFunc(name='wang', age=18) # {'name': 'wang', 'age': 18}
-
各类型的参数可以根据需求搭配使用
2.3、形参与实参
通常情况下,定义函数时都会选择有参数的函数形式,函数参数的作用是传递数据给函数,令其对接收的数据做具体的操作处理。
在使用函数时,经常会用到形式参数(简称“形参”)和实际参数(简称“实参”),二者都叫参数,之间的区别是:
-
形式参数:在定义函数时,函数名后面括号中的参数就是形式参数,只是意义上的一种参数,在定义时不占内存地址,例如:
#定义函数时,这里的函数参数 obj 就是形式参数 def demo(obj): print(obj) -
实际参数:在调用函数时,函数名后面括号中的参数称为实际参数,也就是函数的调用者给函数的参数,是占用内存地址的。例如:
a = "python" #调用已经定义好的 demo 函数,此时传入的函数参数 a 就是实际参数 demo(a)
3、函数返回值
3.1、返回值
概念:函数执行完成后会返回一个执行的结果,如果在函数内部有return就可以返回实际的值,否则返回None。
返回值类型:可以是任意的数据类型,最终的类型取决于return 返回的数据类型。
注意:
在一个函数体内可以出现多次return关键字,但是在函数执行过程中只能执行一次return,执行return后会退出函数return后的语句不会继续执行。
例子:
def mysum(a, b):
sumnum = a + b
return sumnum # 返回计算对象
# 接收返回值
fh = mysum(2, 3)
print(fh) # 5
4、函数嵌套
Python中函数支持嵌套调用,即在一个函数内部调用另外一个函数。
def fun1():
print("---fun1 start---")
print("---fun1 ing---")
print("---fun1 end---")
pass
def fun2():
print("---fun2 start---")
print("---fun2 ing---")
fun1()
print("---fun2 end---")
pass
fun2()
# ---fun2 start---
# ---fun2 ing---
# ---fun1 start---
# ---fun1 ing---
# ---fun1 end---
# ---fun2 end---
5、小结
- 函数基础
- 函数参数
- 函数返回值
- 函数嵌套

浙公网安备 33010602011771号