python基础05 循环 变量 函数组合案例

2023-08-15 13:56:27

目录

1. 前言: 

2. 案例详情:

-> 2.1 案例拆解

---> 2.1.1 主页功能: 

---> 2.1.2 查余额:

---> 2.1.3 存钱

---> 2.1.4 取钱

---> 2.1.5 返回首页重试[可有可无]

---> 2.1.6 退出

3. 实现代码(python版)

4. 运行结果: 

-> 4.1 文字式 想写的可以直接复制文字

-> 4.2 图示(更清晰)

5. 总结: 


1. 前言: 

之前的文章在专栏就能看到  按照编号顺序 案例网上找并改编的 代码自己手写的

 基础目录: 

  1. 变量和数据类型:了解Python中不同的数据类型和如何定义变量。

  2. 运算符:学习Python中的各种运算符,如算术、比较、逻辑、成员运算符等。

  3. 控制流程语句:学习Python中的各种控制流程语句,如条件语句、循环语句等。

  4. 函数和模块:学习如何定义函数以及如何使用模块来组织代码。

  5. 文件操作:理解如何读写文件。

  6. 异常处理:理解如何处理异常情况。

  7. 数据结构:了解Python中常用的数据结构,如列表、元组、字典、集合等。

  8. 面向对象编程:学习Python中的面向对象编程,如类、对象、继承、多态等。

  9. 正则表达式:了解如何使用正则表达式进行字符串匹配和替换。

  10. 标准库的使用:学习Python标准库中常用的模块和函数

python基础之循环 变量 函数组合 的一个新案例 

2. 案例详情:

ATM的收银取银过程  大致借用一下网上案例 自己实在懒得编了

-> 2.1 案例拆解

---> 2.1.1 主页功能: 

请输入您要操作的功能: 1查询余额 2存钱 3取钱 4返回主页(重试) 5退出

---> 2.1.2 查余额:

都要显示当前余额

---> 2.1.3 存钱

询问存多少 存完返回主页

---> 2.1.4 取钱

询问取多少 取完返回主页

---> 2.1.5 返回首页重试[可有可无]

返回首页(表示重试)

---> 2.1.6 退出

(先退出用户名 后退出)

3. 实现代码(python版)

不用java写了 没啥必要 很简单的小案例

写法一大推  本案例可能有更好的写法吧  

"""
 四个选项  查询余额  存钱 取钱 退出
 存钱 取钱 查余额都要显示当前余额
"""
money = 5000
name = None


def show_balance():
    print(f"用户姓名: {name} , 余额是: {money}元")
    main_menu()


def add_balance(add_money):
    global money
    money += add_money
    show_balance()


def sub_balance(sub_money):
    """
    取钱 注意 钱没了就不能取了
    :param sub_money: 取的钱数
    :return: None
    """
    global money
    if sub_money <= money:
        money -= sub_money
    else:
        print("操作失败, 余额不足, ", end="")
    show_balance()


def exit_active():
    global name
    name = None


def main_menu():
    global name

    if not name:
        name = input("请输入您的姓名: \n")
    print(f"当前登录的用户名字为: {name}")

    input_num = int(input("请输入您要操作的功能: 1查询余额 2存钱 3取钱 4返回主页(重试) 5退出\n"))

    if input_num == 1:
        print("1 查询余额操作------> ")
        show_balance()

    if input_num == 2:
        print("2 存钱操作------> ")
        add_balance(int(input("请输入存入金额: \n")))

    if input_num == 3:
        print("3 取钱操作------> ")
        sub_balance(int(input("请输入存入金额: \n")))

    if input_num == 4:
        print("4返回主页------> ")
        main_menu()

    if input_num == 5:
        print("5 退出------> ")
        exit_active()
        return None


# 程序入口
while True:
    if not main_menu():
        break
print(f"当前用户退出成功, 现在登录的用户是: {name}")

4. 运行结果: 

-> 4.1 文字式 想写的可以直接复制文字

请输入您的姓名: 
pzy
当前登录的用户名字为: pzy
请输入您要操作的功能: 1查询余额 2存钱 3取钱 4返回主页(重试) 5退出
1
1 查询余额操作------> 
用户姓名: pzy , 余额是: 5000元
当前登录的用户名字为: pzy
请输入您要操作的功能: 1查询余额 2存钱 3取钱 4返回主页(重试) 5退出
2
2 存钱操作------> 
请输入存入金额: 
100
用户姓名: pzy , 余额是: 5100元
当前登录的用户名字为: pzy
请输入您要操作的功能: 1查询余额 2存钱 3取钱 4返回主页(重试) 5退出
3
3 取钱操作------> 
请输入存入金额: 
50
用户姓名: pzy , 余额是: 5050元
当前登录的用户名字为: pzy
请输入您要操作的功能: 1查询余额 2存钱 3取钱 4返回主页(重试) 5退出
4
4返回主页------> 
当前登录的用户名字为: pzy
请输入您要操作的功能: 1查询余额 2存钱 3取钱 4返回主页(重试) 5退出
5
5 退出------> 
当前用户退出成功, 现在登录的用户是: None

-> 4.2 图示(更清晰)

5. 总结: 

---> 功能分析步骤:

上面案例 最开始想清楚 那些功能是共用的 

1. 先把所有功能做成函数

2. 分析全局变量是什么 余额和登录人姓名

3. 分析主体 判断出是一个死循环 同时找到程序出口(输入5 退出 则退出(报错也可以))

4. 观察每个功能 将共用方法放到每个单独方法里 (存钱/取钱 -> 查看余额) 

5. 查看余额功能后 是不是必然回到主页 (查看余额-> 返回主页main方法)

6. 判断登录用户名 如果有值不是None 则继续操作 否则输入用户名

7. 退出不仅仅是程序退出 同时用户名也需要清除

8. 进行测试, 注意测试 取出超过余额的钱是否能取出  (操作失败,余额不足 )


更多推荐

Python爬虫自动切换爬虫ip的完美方案

在进行网络爬虫时,经常会遇到需要切换爬虫ip的情况,以绕过限制或保护自己的爬虫请求。今天,我将为你介绍Python爬虫中自动切换爬虫ip的终极方案,让你的爬虫更加高效稳定。步骤一:准备爬虫ip池首先,你需要准备一个可靠的爬虫ip池。爬虫ip池是由多个爬虫ip组成的集合,可以通过API或爬虫获取。你可以选择自建爬虫ip池

自动化测试、压力测试、持续集成

因为项目的原因,前段时间研究并使用了SoapUI测试工具进行自测开发的api。下面将研究的成果展示给大家,希望对需要的人有所帮助。SoapUI是什么?SoapUI是一个开源测试工具,通过soap/http来检查、调用、实现WebService的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也可利用插件集

CentOS下Redis6.x安装教程

Redis安装教程文章目录Redis安装教程一、安装包下载地址二、安装2.1上传服务器解压2.2安装编译所需依赖2.3编译安装三、启动与停止3.1守护进程启动3.2开机自启动一、安装包下载地址https://redis.io/download/目前最新的版本是7.0以上的版本,本次使用redis6.2.13的版本二、安

【Docker】Docker的使用案例以及未来发展、Docker Hub 服务、环境安全

前言Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。作者简介:辭七七,目前大二,正在学习C/C++,Java,Python等作者主页:七七的个

【Node.js】认识express并创建基本web服务器:

文章目录一、初识Express【1】Express简介【2】Express的基本使用【3】托管静态资源【4】nodemon二、Express路由【1】路由的概念【2】路由的使用三、Express中间件【1】中间件的概念【2】Express中间件的初体验【3】中间件的分类【4】自定义中间件四、使用Express写接口【1

Excel相关操作

文章目录4.Excel4.1周报业务逻辑讲解4.2基础概念4.3练习数据熟悉4.4数据透视表+图4.5常用函数sumsumifsumifssum和subtotal的区别if函数&嵌套vlookupmatchindex总结4.6周报搭建4.Excel4.1周报业务逻辑讲解在这种周报,可以根据平台和日期筛选所有数据,联动的

《动手学深度学习 Pytorch版》 5.6 GPU

5.6.1计算设备importtorchfromtorchimportnntorch.device('cpu'),torch.device('cuda:0')#cuda等价于cuda:0(只有一块显卡没法试别的块号)(device(type='cpu'),device(type='cuda',index=0))torc

ElasticSearch 因为索引字段改变,平滑迁移索引

问题:某个索引创建时,没有按照想要的mapping,进行创建。有个字段是text,不是想要的keyWord此时需要重新按照mapping创建新索引,并迁移数据,一、不使用别名的方式迁移1.创建新索引:使用Elasticsearch的PUT请求创建一个新的索引,例如PUT/new_index。在创建新索引时,确保按照想要

算法通关村第14关【青铜】| 什么是堆

1.堆的概念堆(Heap):堆是一种特殊的树状数据结构,通常用于实现优先队列和相关算法。堆分为最大堆(MaxHeap)和最小堆(MinHeap)两种类型,具体取决于根节点的值与子节点的关系。在最大堆中,根节点的值最大,而在最小堆中,根节点的值最小。堆具有以下特性:它是一个完全二叉树,通常使用数组来表示。在最大堆中,每个

数据库数据恢复-ORACLE常见故障有哪些?恢复数据的可能性高吗?

ORACLE数据库常见故障:1、ORACLE数据库无法启动或无法正常工作。2、ORACLE数据库ASM存储破坏。3、ORACLE数据库数据文件丢失。4、ORACLE数据库数据文件部分损坏。5、ORACLE数据库DUMP文件损坏。ORACLE数据库数据恢复可能性分析:1、ORACLE数据库无法启动或无法正常工作:突然出现

SpringCloud——微服务

微服务技术栈在之前的开发过程中,我们将所有的服务都部署在一台服务器中,当我们的服务开始越来越多,业务越来越复杂,当一台服务器不能承担我们的业务的时候,就需要将不同的业务分开部署在不同的服务器上,这每一个单独分离的服务,就是微服务,这些搭载了单个业务的服务器,就是【服务集群】。这些服务集群是用来做具体的业务逻辑的,当我们

热文推荐