python-函数
01函数
函数的基本用法:
- 函数的定义:
#求和1~100的和:
def sum(num):
result=0 #局部变量
for i in range(num+1):
result+=i
return result
result=sum(100)
print('1~100的累加和:%d'%result)
- 函数的调用:
def sum_3_nums(a, b, c):
'''求和'''
result = a+b+c
return result
def average_3_nums(a1, a2, a3):
''' 均值'''
result = sum_3_nums(a1, a2, a3)
result = result/3 #result/=3
print("平均值是:%d"%result)
#1. 获取3个数值
num1 = int(input("第1个值:"))
num2 = int(input("第2个值:"))
num3 = int(input("第3个值:"))
#2.调用函数
average_3_nums(num1, num2, num3)
- 函数的参数:
def test(a,b,c=33,*args,**kwargs):#在定义的时候 *,**用来表示后面的变量有特殊功能
print(a)
print(b)
print(c)
print(args)
print(kwargs)
A = (44,55,66)
B = {"name":"laowang","age":18}
test(11,22,33,*A,**B)#在实参中*,**表示对元祖/字典进行拆包
函数的实例:
- 递归函数:
# 通过用户输入数字计算阶乘
# 获取用户输入的数字
num = int(input("请输入一个数字: "))
def getNums(num):
if num>1:
return num * getNums(num-1)
else:
return num
result = getNums(num)
print(result)
- 匿名函数:
def test(a,b,fun): #匿名函数当作实参
result=fun(a,b)
return result
num=test(10,22,lambda x,y:x+y)
print(num)
实例:名片管理系统的设计:
- 实现添加、删除、修改、查询,存储在列表内进行操作,应用字典存储个人的数据。
#函数版:
card_infors = [] #存储名片
def print_menu():
'''完成功能菜单'''
print("="*50)
print(" 名片管理系统 V0.01")
print(" 1. 添加一个新的名片")
print(" 2. 删除一个名片")
print(" 3. 修改一个名片")
print(" 4. 查询一个名片")
print(" 5. 显示所有的名片")
print(" 6. 退出系统")
print("="*50)
def addNewCar():
'''添加一个新用户数据'''
new_name = input("请输入新的名字:")
new_qq = input("请输入新的QQ:")
new_weixin = input("请输入新的微信:")
new_addr = input("请输入新的住址:")
# 定义一个新的字典,用来存储一个新的名片
new_infor = {}
new_infor['name'] = new_name
new_infor['qq'] = new_qq
new_infor['weixin'] = new_weixin
new_infor['addr'] = new_addr
# 将一个字典,添加到列表中
global card_infors
card_infors.append(new_infor)
def DellCar():
"""用来删除一个名片"""
global card_infors
del_name = input("请输入要删除的名字:")
flag = 0
for temp in card_infors:
if del_name == temp['name']:
print("%s\t%s\t\t%s\t\t%s" % (temp['name'], temp['qq'], temp['weixin'], temp['addr']))
card_infors.remove(temp)
flag = 1
print("删除成功!")
break
if flag == 0:
print("查无此人,无法执行删除")
def modifyCard():
"""用来修改一个名片"""
change_name = input("请输入要更改的名字:")
change_flag = 0 # 默认没有找到要更该的名字
flag = 0 # 默认没有修改成功
for temp in card_infors:
if temp['name'] == change_name:
new_name = input('请输入修改的姓名:')
new_qq = input('qq:')
new_weixin = input('微信:')
new_addr = input('住址:')
temp['name'] = new_name
temp['qq'] = int(new_qq)
temp['weixin'] = new_weixin
temp['addr'] = new_addr
flag = True
break
if flag:
print("已修改!")
else:
print('输入的用户不存在!')
def findCard():
'''用来查询一个名片'''
find_name = input('请输入要查询的姓名:')
find_flag = 0 # 默认没找到
for temp in card_infors:
if find_name == temp['name']:
print("%s\t%s\t%s\t%s" % (temp['name'], temp['qq'], temp['weixin'], temp['addr']))
find_flag = 1
break
if find_flag == 0:
print('查无此人。。。。。。。')
def showAll():
"""显示所有的名片信息"""
print("姓名\tQQ\t微信\t住址")
for temp in card_infors:
print("%s\t%s\t%s\t%s" % (temp['name'], temp['qq'], temp['weixin'], temp['addr']))
def main():
# 1.打印功能提示
print_menu()
while True:
# 2. 获取用户的输入
num = int(input("请输入操作序号:"))
# 3. 根据用户的数据执行相应的功能
if num == 1:
addNewCar()
elif num == 2:
dellCar()
elif num == 3:
modifyCard()
elif num == 4:
findCard()
elif num == 5:
showAll()
elif num == 6:
break
else:
print("输入有误,请重新输入")
print("")
if __name__ == '__main__':
main()