python-函数00(实例)

本文详细介绍了Python函数的基础用法,包括定义、调用、参数传递等,并通过一个名片管理系统实例展示了如何使用函数来组织和管理代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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()

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值