一、函数的概念
函数是一块具有独立功能的代码块,通过输入的参数值,返回需要的结果,重复使用,那么往往就需要使用函数,使用函数把这块代码封装成一个整体,函数遇到return即可结束,也就是说函数中只有第一个return语句有效并跳出函数,后面的return语句是无效的。
二、函数的定义
使用关键字def定义,函数在使用前必须定义,函数的类型即返回值类型。python函数定义的格式如下:
def 函数名(参数1,参数2...):
...
return 表达式
函数的参数放在一对圆括号中,参数的个数可以有一个或者多个,参数之间用逗号隔开,这种参数叫做形式参数。
三、函数的参数
python通过名称绑定机制,把实际参数的值和形式参数的名称绑在一起。即把形式参数传递到函数所在的局部命名空间中,形式参数和实际参数指向内存空间中同一存储空间。
函数的参数支持默认值。当某个参数没有传递实际的值时,函数将使用默认参数计算。
四、函数的文档说明
在函数开头一般用双引号包含函数的功能说明、提示等文档信息
#定义一个输出名片的函数
def myslef(dict):
"这个函数是用来输入名片信息的"
for key,value in dict.items():
print(key,value)
dict = {"姓名":"李佳琪","性别":"女","身高":"160"}
myslef(dict)
五、函数的返回值
返回值指的是一个函数执行完成以后,把一个结果给调用者。
函数的返回使用return语句,return后面可以是变量或表达式。
函数没有return语句时,返回值为None,None是python中的对象,不属于数字也不属于字符串。当函数中的return语句不带任何参数时,返回的结果也是None。
def func():
return
print(func())
如果需要返回多个值,可以把这些值打包到元组中,在调用时,对返回的元组解包即可。
def func(x,y,z):
l = [x,y,z]
l.reverse()
numbers = tuple(l)#数据打包
return numbers
x,y,z = func(0,1,2)#数据解包
print(x,y,z)
def sum(num1,num2):
sum = num1+num2
return sum
num1 = int(input("输入第一个值:"))
num2 = int(input("输入第二个值:"))
sum = sum(num1,num2)
print("num1+num2=%d"%sum)
注意:
if-else语句中的返回值(两种方法):
方法一:
if(1>0):
return 100
else:
return 200
方法二
if(1>0):
num = 100
else:
num = 200
return num
方法二较方法一好
六、函数的类型
1.无参数,无返回值
此类函数,不能接收参数,也没有返回值,一般情况下,打印提示等类似的功能,使用这类函数。
2.无参数,有返回值
此类函数,不能接收参数,但是可以返回某个数据,一般情况下,像采集数据,用此类函数。
3.有参数,无返回值
此类函数,能接收参数,但不可以返回数据,一般情况下,对某些变量设置数据而不需要结果时,用此类函数。
4.有参数,有返回值
此类函数,不仅能接收参数,还可以返回某个数据,一般情况下,像数据处理并需要结果的应用,用此类函数。
七、练习
练习1(定义函数完成2个数相加):
#定义一个函数,使得从键盘获取的两个数字相加
def sum(num1,num2):
sum = num1+num2
print("num1+num2=%d"%sum)
num1 = int(input("输入第一个值:"))
num2 = int(input("输入第二个值:"))
sum(num1,num2)
练习2(带有函数的学生管理系统):
#学生信息管理系统
#打印输出界面信息
def print_info():
print("=" * 30)
print("1:添加学生信息")
print("2:删除学生信息")
print("3:修改学生信息")
print("4:查询学生信息")
print("0:退出系统")
print("=" * 30)
def add_info():
name = input("请输入学生的名字:")
sex = input("请输入学生的性别:")
high = input("请输入学生的身高:")
student_info = {}
student_info["name"] = name
student_info["sex"] = sex
student_info["high"] = high
names.append(student_info)
print("添加成功!")
def del_info():
name = input("请输入要删除的学生姓名:")
for name_check in names:
if (name_check["name"] == name):
del name_check
break
print("删除成功!")
def update_info():
name = input("请输入要修改的学生姓名:")
name_new = input("请输入修改后的姓名:")
sex_new = input("请输入修改后的性别:")
high_new = input("请输入修改后的身高:")
for name_check in names:
if (name_check["name"] == name):
break
name_check["name"] = name_new
name_check["sex"] = sex_new
name_check["high"] = high_new
print("修改成功!")
def check_info():
name = input("请输入要查询的名字:")
for name_check in names:
if (name_check["name"] == name):
flag = 1
break
if (flag == 1):
print("查找成功!")
print(" 姓名 性别 身高")
print(" %s %s %s" % (name_check["name"], name_check["sex"], name_check["high"]))
names = []
#系统提示
while(True):
print_info()
#获取操作数字
op = input("请输入你要进行的操作:")
#根据用户选择进行功能调用
flag = 0
if(op == "1"):
add_info()
elif(op == "2"):
del_info()
elif(op == "3"):
update_info()
elif(op == "4"):
check_info()
elif(op == "0"):
exit(0)
练习3(带有函数嵌套的学生管理系统):
#学生信息管理系统
names = []
#打印输出界面信息
def print_info():
print("=" * 30)
print("1:添加学生信息")
print("2:删除学生信息")
print("3:修改学生信息")
print("4:查询学生信息")
print("0:退出系统")
print("=" * 30)
def add_info():
name = input("请输入学生的名字:")
sex = input("请输入学生的性别:")
high = input("请输入学生的身高:")
student_info = {}
student_info["name"] = name
student_info["sex"] = sex
student_info["high"] = high
names.append(student_info)
print("添加成功!")
def del_info():
name = input("请输入要删除的学生姓名:")
for name_check in names:
if (name_check["name"] == name):
del name_check
break
print("删除成功!")
def update_info():
name = input("请输入要修改的学生姓名:")
name_new = input("请输入修改后的姓名:")
sex_new = input("请输入修改后的性别:")
high_new = input("请输入修改后的身高:")
for name_check in names:
if (name_check["name"] == name):
break
name_check["name"] = name_new
name_check["sex"] = sex_new
name_check["high"] = high_new
print("修改成功!")
def check_info():
name = input("请输入要查询的名字:")
for name_check in names:
if (name_check["name"] == name):
flag = 1
break
if (flag == 1):
print("查找成功!")
print(" 姓名 性别 身高")
print(" %s %s %s" % (name_check["name"], name_check["sex"], name_check["high"]))
def main():
#系统提示
while(True):
print_info()
#获取操作数字
op = input("请输入你要进行的操作:")
#根据用户选择进行功能调用
flag = 0
if(op == "1"):
add_info()
elif(op == "2"):
del_info()
elif(op == "3"):
update_info()
elif(op == "4"):
check_info()
elif(op == "0"):
exit(0)
main()