用python模拟银行服务(可下载项目)

means = [0, 0, 0]  
loan = 0
rate = 0
pay = 0
investment = 0
annual_rate = 0


def fixed_investment(inv, a_rate, y):
    global means
    inv = 12 * inv
    a_rate = a_rate / 100
    if a_rate == 0:
        expected = 0
    else:
        expected = inv * (1 + a_rate) * (pow((1 + a_rate), y) - 1) / a_rate
    print("定投的预期收入为: %.2f" % expected)
    means[1] = expected
    return expected


def balance():
    total = 0
    for i in means:
        total += i
    print("你的资产总额为:%.2f" % total)
    print("你的资产明细为:\n")
    print("存款:%.2f" % means[0])
    print("理财:%.2f" % means[1])
    print("负债:%.2f" % means[2])


def saving(amount):
    global means
    if amount < 0:
        print("存款金额不可小于 0!")
    else:
        means[0] += amount
        print("已存款:%.2f 元" % amount)
        print("当前余额:%.2f 元" % means[0])


def draw_money(drawing):
    global means
    if drawing < 0:
        print("取款金额不可小于 0!")
    elif drawing > means[0]:
        print("取款金额不可超过余额!")
    else:
        means[0] -= drawing
        print("已取款: %.2f 元" % drawing)
        print("当前余额: %.2f 元" % means[0])


def loans(loan, rate, pay, years):
    global means
    if pay < (loan - pay) * rate:
        print("你是还不完的!!!")
    else:
        if years == 0:
            count = 0
            while loan > 0:
                loan -= pay
                loan *= (1 + rate)
                count += 1
            print("将在 %d 年后还完贷款。" % count)
        else:
            for _ in range(years):
                loan -= pay
                if loan == 0:
                    break
                else:
                    loan *= (1 + rate)
                    print("你现在的负债是: %.2f" % loan)
            return loan


def future(years):
    income = fixed_investment(investment, annual_rate, years)
    debt = loans(loan, rate, pay, years)
    captial = means[0] + income - debt
    print("你第%i年的总资产有: %.3f" % (years, captial))


def init():
    print()
    print('''以下为可办理的业务:
        1. 查询资产
        2. 存款
        3. 取款
        4. 计算复利
        5. 计算贷款
        6. 计算未来资产
        q. 退出''')


def main():
    init()
    while True:
        choice = input("请输入您要办理的业务代码: ")
        if choice == "1":
            balance()
        elif choice == "2":
            inc = float(input("请输入存款金额: "))
            saving(inc)
        elif choice == "3":
            dec = float(input("请输入取款金额: "))
            draw_money(dec)
        elif choice == "4":
            investment = float(input("请输入每月定投金额: "))
            annual_rate = float(input("请输入年收益率: "))
            years = int(input("请输入定投期限(年): "))
            if investment <= 0 or annual_rate <= 0 or years <= 0:
                print("输入的数据有误")
            else:
                money = fixed_investment(investment, annual_rate, years)
            print("最终收获: %.2f 元" % money)
        elif choice == "5":
            loan = float(input("请输入当前贷款: "))
            rate = float(input("请输入年利率: "))
            pay = float(input("请输入每年还款: "))
            if loan <= 0 or rate <= 0 or pay <= 0:
                print("输入的数据有误")
            else:
                loans(loan, rate, pay, 0)
        elif choice == "6":
            years = int(input("希望查询多少年后的财务状况? "))
            future(years)
        elif choice == "q":
            print("欢迎下次光临!再见!")
            break
        else:
            print("你输入的指令有误,请重新输入\n")


if __name__ == '__main__':
    main()

以上即为全部源码,自行复制即可。

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PythonATM是一个基于Python语言开发的自动取款机项目。该项目旨在模拟一个真实的自动取款机,使用户能够执行存款、取款、查询余额和修改密码等操作。 PythonATM的界面友好、操作简单,具有以下功能和特点: 1. 用户验证:用户在使用PythonATM之前需要通过输入卡号和密码进行身份验证。系统将验证卡号和密码的正确性,并给予相应的提示信息。 2. 查询余额:用户可以通过选择查询余额功能,查看自己银行账户的余额信息。系统将会显示出余额信息,并提供返回主菜单的选项。 3. 存款操作:用户可以选择存款功能,输入存款金额,系统将会将金额增加到用户的银行账户余额中,并给予相应的提示信息。 4. 取款操作:用户可以选择取款功能,输入取款金额,系统将会判断用户的账户余额是否足够,并将金额从用户的银行账户中扣除,并给予相应的提示信息。 5. 修改密码:用户可以选择修改密码功能,输入原密码和新密码,系统将会判断原密码的正确性,并将新密码更新到用户的银行账户中,并给予相应的提示信息。 PythonATM的设计和实现模拟了一个真实的自动取款机,并且运用了Python的面向对象编程思想,增加了代码的可复用性和可维护性。在实训项目中,我们需要了解银行卡操作业务的流程和要求,设计相应的类和函数,并进行适当的测试和调试。 通过这个实训项目,我们可以更好地理解面向对象编程的概念和思想,并应用到实际项目的设计与开发中。同时,也提高了我们对Python语言的熟悉度和应用能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值