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

news2024/11/25 14:34:21

目录

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. 进行测试, 注意测试 取出超过余额的钱是否能取出  (操作失败,余额不足 )


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/881787.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

okcc对接ASR平台,okcc客户投诉的安全问题

客户投诉: 客户为什么要投诉&#xff1f;实际上分为两种情况&#xff0c;一是客户被冒犯到不能容忍导致的投诉&#xff0c;二是恶意投诉。降低客户被冒犯投诉的概率&#xff0c;无非就是选择客户、规范用语、降低频度&#xff1b;减少恶意投诉&#xff0c;回避是实践证明最有效…

飞行动力学-第16节-part1-机动飞行中的稳定性 之 基础点摘要

飞行动力学-第16节-part1-机动飞行中的稳定性 之 基础点摘要 1. 机动2. 重心位置3. 翼载荷4. 参考资料 1. 机动 法向过载( n L W n\frac{L}{W} nWL​)超过1的飞行轨迹。 铅垂面的拉升机动水平面内的协调转弯 根据叠加原理&#xff0c;分解为&#xff1a; 定常拉升 平飞 …

数字孪生,HDR如何提取

现在有很多的地方使用全景图&#xff0c;这些全景图是动态展示的720图片&#xff0c;无法通过浏览器点击下载到本地。 今天给你们安利一款好用的、免费的、可下载720全景图的网站。 步骤一 打开这个网址https://krpano.scenegram.cn/&#xff08;全景管家&#xff09;&#xf…

十一、避开客户端控件——收集用户数据

文章目录 一、HTML表单1.1 长度限制1.2 基于脚本的确认1.3 禁用的元素 二、浏览器拓展2.1 常见的浏览器拓展技术2.2 攻击浏览器扩展的方法 一、HTML表单 应用程序使用客户端控件限制客户端提交的数据的另一个主要控制对象&#xff0c;是由客户端计算机自己收集的数据。 HTML表单…

win11如何去掉桌面快捷方式的小箭头(原创)

begin 打开注册表,Windows搜索框里搜 注册表编辑器(register editor),打开.. 找到 接着跟进.. 新建一个项名, Shell Icons 继续.... 值设为29 双击开页面 输入数据 %windir%\System32\shell32.dll,-51 到此,保存,到桌面,小箭头还是没有消失 ctrl shift esc 打开 任务管理…

Java课题笔记~ SpringMVC注解式开发

2.1 Controller 传统的配置式开发中的控制器Controller类必须实现Controller接口&#xff0c;并实现接口中的HandleRequest()方法&#xff0c;还需要再配置文件中配置处理器映射&#xff0c;且一个处理器&#xff08;控制器&#xff09;只能有一个方法&#xff0c;为了实现程序…

创建预留成本中心与指定工厂不一致

创建预留成本中心与指定工厂不一致 这种情况SAP会警告提示&#xff0c;可以强制通过。 如果公司不允许跨公司领料&#xff0c;可以将消息号 M7517的类型从W改为为E tcode&#xff1a;OMCQ SPRO->物料管理->库存管理和实际库存->定义系统消息的属性->系统信息设置

如何快速便捷收集市场信息?电商API来帮你

电商API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;是为了促进不同电商平台之间数据共享和交互而设计的一种技术。通过使用电商API&#xff0c;可以快速便捷地收集市场信息&#xff0c;提升电商运营效率&#xff0c;增加竞争力。 …

根据指定日期获取周,月,季度,年的第一天和最后一天

1. 根据指定日期获取周&#xff0c;月&#xff0c;季度&#xff0c;年的第一天和最后一天 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;/*** 根据给定时间获取周、月度、季度、年度开始结束时间*…

OSPF在广播类型的网络拓扑中DR和BDR的选举

指定路由器&#xff08;DR&#xff09;&#xff1a; 一个网段上的其他路由器都和指定路由器&#xff08;DR&#xff09;构成邻接关系&#xff0c;而不是它们互相之间构成邻接关系。 备份指定路由器&#xff08;BDR&#xff09;&#xff1a; 当DR出现问题&#xff0c;由BDR接…

数字化转型能带来哪些价值?

数字化转型可以为个人、企业和整个社会带来广泛的价值。以下是数字化转型的一些主要优势&#xff1a; 1.提高效率和生产力&#xff1a;重复任务的自动化和简化流程可以提高效率和生产力。这使员工能够专注于更具战略性和增值性的活动。 2.增强的客户体验&#xff1a;数字化转…

荣耀X40 GT真机调试APP,HBuilder X刷新不到设备

今天使用荣耀X40GT进行真机调试App的时候&#xff0c;hbuilder怎么都刷不出来设备&#xff0c;经历一番风雨最终连接成功&#xff0c;特此记录一下。 我的设备Android版本12&#xff0c;MagicOS版本7.0&#xff0c;进行了如下配置&#xff1a; 1、打开“设置”-》“系统和更新”…

视频批量处理利器,轻松实现高效倒放功能

亲爱的视频编辑者们&#xff0c;您是否曾遇到需要将大量视频进行倒放处理的情况&#xff1f;但是手动一个个倒放操作繁琐又耗时&#xff0c;让您感到头疼&#xff1f;现在&#xff0c;我们为您推出一款全新的视频批量处理利器&#xff0c;让您的倒放操作变得轻松高效 第一步。…

深入源码分析kubernetes informer机制(四)DeltaFIFO

[阅读指南] 这是该系列第四篇 基于kubernetes 1.27 stage版本 为了方便阅读&#xff0c;后续所有代码均省略了错误处理及与关注逻辑无关的部分。 文章目录 client-go中的存储结构DeltaFIFOdelta索引 keyqueue push操作delta push 去重 queue pop操作 总结 client-go中的存储结构…

雷军的代码,成为金山火苗,WPS的逆风翻盘,却要靠工具

苦练内功 “雷军写代码”冲上热搜。 作为中国科技界的大佬&#xff0c;一直享有“雷布斯”的称谓。 早年的成长经历也激励着一批批年轻人&#xff0c;挥洒青春&#xff0c;艰苦奋斗。 雷军在今年的演讲上一张海报&#xff0c;让很多再次看到了雷军早年写的“代码”&#xf…

CRMEB商城系统:便捷、安全、多样化的购物方式

商城系统是当今社会商业发展的重要组成部分&#xff0c;它以数字化、网络化的方式提供商品和服务。商城系统通过互联网技术&#xff0c;将商品和消费者紧密连接&#xff0c;方便了购物的流程和效率。 商城系统的特点之一是无国界化。传统实体商店通常受限于地理位置和时间&…

4.文件操作和IO

文章目录 1.认识文件1.1树型结构组织 和 目录1.2文件路径&#xff08;Path&#xff09;1.3其他知识 2.Java 中操作文件2.1File 概述2.1.1属性2.1.2构造方法2.1.3方法 2.2代码示例2.2.1示例1-get 系列的特点和差异2.2.2示例2-普通文件的创建、删除2.2.3示例3-普通文件的删除2.2.…

解决“ug12.0许可证错误-97”问题

解决“UG12.0许可证错误-97”问题的具体如下&#xff1a; 1、以管理员的身份打开UG许可证文件"lmtools"&#xff0c;先点击"Config Services"&#xff0c;再点击下图中箭头指向的”Browse"按钮。 2、进入“D:\PRogram Files\UGS\UGSLicensing”文件夹…

领航优配:EFT交易是什么意思?

EFT买卖是一种电子资金搬运买卖方法&#xff0c;EFT代表电子资金搬运&#xff0c;将现金从一个银行账户搬运到另一个银行账户。尽管这种买卖方法已经存在了几十年&#xff0c;但随着技能的开展&#xff0c;越来越多的人开始使用它。 从技能视点&#xff0c;EFT买卖是经过计算机…

drawio----输出pdf为图片大小无空白(图片插入论文)

自己在写论文插入图片时为了让论文图片放大不模糊&#xff0c;啥方法都试了&#xff0c;最后摸索出来这个。 自己手动画图的时候导出pdf总会出现自己的图片很小&#xff0c;pdf的白边很大如下如所示&#xff0c;插入论文的时候后虽然放大不会模糊&#xff0c;但是白边很大会显…