一、函数
1、产生原因
在软件开发中,时常出现功能相同,处理数据不同的代码块,复制该段代码到相应位置稍加修改,不利于后期维护。
2、解决方法
将可能需要返回执行的代码封装为函数,然后在需要该功能的地方调用函数,不仅可以实现代码的复用,更重要的是保证代码的一致性。
3、实际要求
在设计时要提高函数的内聚性,减少不同函数之间的耦合性;尽量减少副作用,只实现指定功能;在实际开发中,需要把调用的函数封装到一个模块中,使得管理方便。
二、函数的定义
def <函数名> (<参数列表>):
“”“注释”“”
<函数体>
注意:
函数形参不需要声明其类型,也不需要指定函数的返回类型;
即使该函数不需要接收任何参数,也必须保留一对空括号;
括号后面的冒号不能少;
函数体相对于def关键字必须保持一定的空格缩进。
三、函数的使用
函数定义:
使用关键字def,确定函数名、参数名、参数个数
函数调用:
通过函数名调用,对各个参数赋予实际值
函数执行:
根据传入的值执行函数体语句
函数返回:
函数执行完毕,根据return保留字决定是否返回结果
def young(age):
if 12 <= age <= 17:
print( "作为一个大学生,你很年轻")
elif age <12:
print( "作为一个大学生,你太年轻了")
elif age <= 28:
print( "作为一个大学生,你要努力学习")
else:
print( "作为一个大学生,你很有毅力")
young(18)
作为一个大学生,你要努力学习
四、函数的参数传递
1、位置参数
位置参数是比较常用的形式,调用函数时实参和形参的顺序必须严格一直,并且数量必须相同
def demo(a,b): # 所有形参都是位置参数(非可选参数)
print(a,b) # 实参与形参的数量必须相同
demo(3,4)
3,4
2、默认值参数
使用形参名称时,传参顺序可任意调整。
位置参数必须在关键字参数之前传入。
任何一个默认值参数右边都不能再出现位置参数。
多次调用函数且不为默认值参数传参,默认值参数只在定义时进行一次解释和初始化。
def data(name,age = 18): # 可以使用“函数名.__default__"查看默认值参数的当前值
print(name+str(age) + "岁")
data("张三")
张三18岁
3、关键字参数
关键参数主要指调用函数时的参数传递方式,与函数定义无关。
指定参数名传参,实参顺序和形参