Python面向对象编程2-面向过程的银行账号模拟程序 项目2.2 取款与查看余额

项目总目标:用面向过程思想设计一个简单的银行账号模拟程序。本次将迭代多个程序版本,每个版本都将添加更多功能。虽然这些程序没有达到发布的质量标准,但整个项目的目的是关注于代码如何与一个或多个银行账户的数据进行交互。

分析项目的必要操作和数据: 

客户对银行账户的操作包括 创建账户;存款,取款,查询余额

银行需要的数据包括 客户姓名;密码;余额

项目2.2 单个账户的取款与查看余额

python"># 定义了账户的相关信息
accountName = 'Joe'
accountBalance = 100
accountPassword = 'abed'

# 表示程序将一直执行,直到遇到break语句跳出循环。
while True:
    # 在每次循环开始时,会打印出一些指令供用户选择操作。指令包括查询余额、存钱、取款、显示账户和退出系统。
    print()
    print('b 查询余额')
    print('d 存钱')
    print('w 取款')
    print('s 显示账户')
    print('q 退出系统')
    print()

    action = input('输入指令: ')
    action = action.lower()  # force lowercase
    action = action[0]  # just use first letter
    print()

    # 用户输入的指令进行处理。在这段代码中,只处理了取钱('w')的操作
    if action == 'w':
        print('取钱:')

        userWithdrawAmount = input('输入存钱数量(整数): ')
        userWithdrawAmount = int(userWithdrawAmount)
        userPassword = input('请输入密码: ')

        # 如果取款数量为非负数且密码验证通过并取款数量大于账户余额,那么将存款金额加到账户余额accountBalance上
        if userWithdrawAmount < 0:
            print('不可以取出负数!')

        elif userPassword != accountPassword:
            print('密码错误')

        elif userWithdrawAmount > accountBalance:
            print('不可取出大于账户余额的钱')

        else:
            accountBalance = accountBalance - userWithdrawAmount
            print('当前账号余额为:', accountBalance)

    # 用户输入的指令进行处理。在这段代码中,处理了显示余额('b')的操作
    elif action == 'b':
        print('显示余额:')
        userPassword = input('请输入密码: ')
        if userPassword != accountPassword:
            print('密码错误')
        else:
            print('当前账户余额为: ', accountBalance)

效果如下:

 

代码分析:

这段代码是一个简单的银行账户程序,用于处理取款和查询余额操作。

首先,定义了账户的相关信息,包括账户名称、账户余额和账户密码。

接下来,使用一个无限循环while True,表示程序将一直执行,直到遇到break语句跳出循环。

在每次循环开始时,会打印出一些指令供用户选择操作。指令包括查询余额、存钱、取款、显示账户和退出系统。

然后,程序会要求用户输入一个指令,将用户输入的指令存储在变量action中。

接下来,对用户输入的指令进行处理。分别处理了取钱('d')和查询余额 ('b') 的操作。

如果用户选择了取钱操作,程序会要求用户输入取款的数量(整数)和密码。

然后,程序会进行一系列验证:

  • 首先,检查用户输入的取款数量userDepositAmount是否小于0
  • 其次,检查用户输入的密码userPassword是否与账户密码accountPassword相等
  • 接着,检查用户输入的取款数量是否已大于当前余额
  • 如果存款数量为非负数且密码验证通过且小于当前余额,那么将取款金额从账户余额扣除

这样,当用户选择取钱操作并通过验证时,显示更新后的余额给用户。

需要注意的是,这只是程序的一部分,只处理了取钱操作和查询余额,其他指令没有进行处理。后面的项目陆续会包含对这些指令的处理逻辑。·


http://www.niftyadmin.cn/n/455672.html

相关文章

【系统开发】尚硅谷 - 谷粒商城项目笔记(七):消息队列

文章目录 消息队列概述两大种类RabbitMQ安装及基操Docker中安装添加用户创建Virtual Hosts设置权限添加交换机创建队列交换机绑定队列 五种消息模型SpringBoot整合MQ引入依赖properties配置开启RabbitMQ API使用创建交换机创建队列交换机绑定队列发送消息接收消息 消息确认机制…

【算法题】2570. 合并两个二维数组 - 求和法

题目&#xff1a; 给你两个 二维 整数数组 nums1 和 nums2. nums1[i] [idi, vali] 表示编号为 idi 的数字对应的值等于 vali 。 nums2[i] [idi, vali] 表示编号为 idi 的数字对应的值等于 vali 。 每个数组都包含 互不相同 的 id &#xff0c;并按 id 以 递增 顺序排列。 …

基于Informer的股票价格预测(量化交易综述)

摘要 股票市场是金融市场中不可或缺的组成部分。准确预测股票趋势对于投资者和市场参与者具有重要意义&#xff0c;因为它们可以指导投资决策、优化投资组合以及降低金融风险。而且可以提升国家国际地位以及金融风险控制能力&#xff0c;还可以促进股票市场发展以及资源优化利…

Caretta 利用 eBPF 实现 Kubernetes 应用网络拓扑

介绍 Caretta 是一种轻量级的独立工具&#xff0c;快速展示集群中运行的服务可视化网络图。 Caretta 利用 eBPF 有效地展示 K8s 集群中的服务网络交互图&#xff0c;并利用 Grafana 查询和可视化收集的数据。科学家们早就知道&#xff0c;海龟和许多动物一样&#xff0c;通过…

什么是元宇宙?元宇宙由哪些关键技术、设备构成?

元宇宙近几年来火爆起来,各个行业争先恐后加入。从目前来看,元宇宙初步体现在游戏娱乐行业、社交、消费、数字孪生等方面。元宇宙近两年开始在各个行业快速崛起,但各个行业并没有一个清晰的发展方向,那么什么是元宇宙? 元宇宙到底由哪些技术和设备组成&#xff1f;查询了很多资…

【IC设计】ICC1 workshop lab guide 学习笔记——Lab1 Data SetupBasic Flow

文章目录 Lab1 Data Setup&Basic Flow1.1 Create a Milkyway library1.2 Load the Netlist,TLU,Constraints and Controls1.3 Basic Flow:Design Planning1.4 Bsic Flow:Placement1.5 Basic Flow:CTS1.6 Basic Flow:Routing Lab1 Data Setup&Basic Flow 1.1 Create a …

MFC学习之修改设置控件字体显示和颜色参数

前言 最近一直配合研发部门写一些调试类的小软件&#xff0c;记得之前电脑显示器和显卡配置都不高&#xff0c;显示分辨率比较低&#xff0c;软件界面上的文字还能看到清楚&#xff08;不显小&#xff09;。 现在公司新配置的电脑都比较好了&#xff0c;界面字体&#xff0c;尤…

Android系统安全 — 6.2 Ethernet安卓架构

1. Android Ethernet架构介绍 整个Ethernet系统架构如下图所示&#xff1a; 以太网服务&#xff08;EthernetService&#xff09;的启动与注册流程&#xff1b;应用层调用使能ethernet功能的方法流程来分析&#xff0c;从应用层如何将指令一步一步传到底层kernel&#xff1b;…