Python实现银行存取款案例——详细步骤+源码

写在前面

  今天使用内嵌函数实现一个简单的银行存取款案例小程序,分享给大家,希望能够对你们有所帮助~

  郑重声明:本人目前仅在CSDN这一个平台发布文章,其他小伙伴如果想转载 或者引用请注明引用来源,未经许可不得直接搬运,请尊重创作人的劳动成果,谢谢!

在这里插入图片描述

一、需求分析

主要功能包括:存钱、取钱和余额查询。
整体流程如下图

在这里插入图片描述

下面带大家看一下最终的展示效果:

在这里插入图片描述

二、编程思路

  在最外层定义一个bank()函数,实现新用户的开户功能,里面包含四个内嵌函数。putMoney()函数实现存钱的功能,参数number表示存钱的数量,将该值累加到外部变量money上;gutMoney()函数实现取钱的功能,参数number表示取钱的数量,对外部变量money做减法操作;seeMoney()函数表示查看当前用户的余额;最后是一个menu()函数,表示操作的菜单选择,允许用户重复选择各项操作,当用户选择退出时,结束循环。

三、实现过程

  首先定义bank()函数,然后编写四个内嵌函数即可。

def bank(accountID,name,money=0):#新储户的开户功能
    print("新开账户信息:\n---------------------")
    print("账号:",accountID)
    print("姓名:",name)
    print("余额:",money)
    print()

1.getMoney()函数

    def getMoney(number):#取款函数
        nonlocal money
        if isinstance(number,(int,float))==True:
            if number>=0 and number<=money:
                money=money-number
            else:
                print("余额不足!")
        else:
            print("取款金额应该为数字类型!")
        seeMoney()

2.putMoney()函数

    def putMoney(number):#存款函数
        nonlocal money
        if isinstance(number,(int,float))==True:
            if number>=0:
                money=money+number
            else:
                print("存款金额不能为负数!")
        else:
            print("存款金额应该为数字类型!")
        seeMoney()

3.menu()函数

    def menu():#定义菜单项
        print("当前账户信息:\n-----------------")
        print("账号:", accountID)
        print("姓名:", name)
        while True:
            try:
                opNum = int(input("请输入要执行的操作:(1.存钱 2.取钱 3.查询余额 4.退出)"))
                if opNum == 1:
                    number = int(input("请输入存款金额:"))
                    putMoney(number)
                elif opNum==2:
                    number=int(input("请输入取款金额:"))
                    getMoney(number)
                elif opNum==3:
                    seeMoney()
                elif opNum==4:
                    print("退卡成功!\n")
                    break
                else:
                    print("请输入有效操作!")
            except:
                print("请输入有效操作!")
    return menu

以上就是本程序的核心函数,完整代码在下边给出。

四、完整代码

def bank(accountID,name,money=0):#新储户的开户功能
    print("新开账户信息:\n---------------------")
    print("账号:",accountID)
    print("姓名:",name)
    print("余额:",money)
    print()

    def seeMoney():
        print("最新余额:",money) #正确无异常
        #print("最新余额:"+str(money))正确无异常
        #print("最新余额:"+money) 错误有异常

    def putMoney(number):#存款函数
        nonlocal money
        if isinstance(number,(int,float))==True:
            if number>=0:
                money=money+number
            else:
                print("存款金额不能为负数!")
        else:
            print("存款金额应该为数字类型!")
        seeMoney()

    def getMoney(number):#取款函数
        nonlocal money
        if isinstance(number,(int,float))==True:
            if number>=0 and number<=money:
                money=money-number
            else:
                print("余额不足!")
        else:
            print("取款金额应该为数字类型!")
        seeMoney()

    def menu():#定义菜单项
        print("当前账户信息:\n-----------------")
        print("账号:", accountID)
        print("姓名:", name)
        while True:
            try:
                opNum = int(input("请输入要执行的操作:(1.存钱 2.取钱 3.查询余额 4.退出)"))
                if opNum == 1:
                    number = int(input("请输入存款金额:"))
                    putMoney(number)
                elif opNum==2:
                    number=int(input("请输入取款金额:"))
                    getMoney(number)
                elif opNum==3:
                    seeMoney()
                elif opNum==4:
                    print("退卡成功!\n")
                    break
                else:
                    print("请输入有效操作!")
            except:
                print("请输入有效操作!")
    return menu

users=[]#保存银行的所有储户
users.append(bank(1001,"张三"))
users.append(bank(1002,"李四",10000))

#使用索引调用函数
users[0]()
users[1]()

小知识点:使用了nonlocal关键字声明money是外部变量

引用源自

中国MOOC Python编程基础 https://www.icourse163.org/course/HBRJ-1206206801

  本篇完,如有错误欢迎指出~

  • 10
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我敲的贼快

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值