【Python 学习】第一个python案例
Python的ATM机Demo
一、需要安装python环境(略)
二、ATM源码
# 初始化全局余额
money = 5000# 定义初始化界面菜单函数def menu(name):"""主页面-主菜单 返回用户选择的菜单:param name: 用户名称:return: 返回菜单类型"""print(f"{name},您好,欢迎您来到小智银行ATM,请选择操作:")print("查询余额\t[输入1]")print("存款\t\t[输入2]")print("取款\t\t[输入3]")print("退出\t\t[输入4]")operate_type = int(input("请输入您的选择:"))return operate_type# 定义查询余额方法def balance_inquiry(name, show_header):"""用户余额查询方法:param show_header: 控制头部是否展示:param name: 用户名称:return: 无返回值"""if show_header:print("------------------余额查询--------------------")print(f"{name},您好,您的余额剩余:{money}元")# 定义存款或取款业务方法
def deposit_withdrawal(name, operate_type, amount):"""用户存取款业务方法:param name: 用户名称:param operate_type: 取款-3,存款-2 操作类型:param amount: 存取金额:return: 无返回值"""# balance = 0global moneyif operate_type == 2:print("------------------存款--------------------")print(f"{name},您好,您存款:{amount}元成功")# balance = money + amount# 初始化全局的money值改变money = money + amount# 输出剩余余额balance_inquiry(name, False)# print(f"{name},您好,您的余额剩余:{balance}元")if operate_type == 3:print("------------------取款--------------------")if money >= amount:print(f"{name},您好,您取款:{amount}元成功")# 初始化全局的money值改变money = money - amount# 输出剩余余额balance_inquiry(name, False)# print(f"{name},您好,您的余额剩余:{balance}元")else:print(f"{name},您好,您的余额剩余:{money}元")print(f"{name},您好,余额不能支持您取出:{amount}元")# ATM机入口
def main():print("--------------欢迎您使用小智ATM机---------------")name = input("尊敬的用户,请您输入名称:")# 调用菜单while True:operate_type = menu(name)# 验证是否为查询余额操作if operate_type == 1:balance_inquiry(name, True)continueelif operate_type == 2:amount = int(input(f"尊敬的:{name},请您输入需要存入的金额:"))deposit_withdrawal(name, operate_type, amount)continueelif operate_type == 3:amount = int(input(f"尊敬的:{name},请您输入需要取出的金额:"))deposit_withdrawal(name, operate_type, amount)continueelif operate_type == 4:breakelse:print(f"尊敬的{name}用户,您的选择有误,请重新选择:")continueprint("----------感谢您使用小智ATM机-再见-------------")# 调用AMT机
main()
直接运行python文件即可!!!
相关文章:

【Python 学习】第一个python案例
Python的ATM机Demo 一、需要安装python环境(略) 二、ATM源码 # 初始化全局余额 money 5000# 定义初始化界面菜单函数def menu(name):"""主页面-主菜单 返回用户选择的菜单:param name: 用户名称:return: 返回菜单类型"""print(f"{name}…...

【C#学习笔记】值类型(2)
文章目录 Struct结构体类型为什么不推荐struct 元组类型可为空的值类型从可为空的值类型转换为基础类型提升的运算符如何确定可为空的值类型为什么建议少用T?装箱和取消装箱 Struct结构体类型 结构类型(“structure type”或“struct type”)是一种可封…...

【设计模式】-建造者模式
Java建造者模式:创建复杂对象的灵活构建者 在软件开发中,我们经常遇到需要创建一个复杂对象的情况。如果使用传统的构造函数进行对象创建,可能会导致构造函数参数过多,难以管理和维护。建造者模式(Builder Pattern&am…...

【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据
eeprom 说明 eeprom介绍 AT24C01A,1K串行EEPROM:内部组织16页8字节,1K需要一个7位数据字地址进行随机字寻址。AT24C02,2K串行EEPROM:内部组织32页8字节,2K需要一个8位数据字地址进行随机字寻址。AT24C04,4K串行EEPRO…...

Python OpenCV读取并显示USB UVC摄像头
1. 安装Python, 略。 2. 安装 OpenCV: pip install opencv-python 3. 预览摄像头画面脚本: import cv2cap cv2.VideoCapture(0, cv2.CAP_DSHOW)if not (cap.isOpened()):print("Could not open video device")cap.set(cv2.CAP_PR…...

针对高可靠性和高性能优化的1200V碳化硅沟道MOSFET
目录 标题:1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance摘要信息解释研究了什么文章创新点文章的研究方法文章的结论 标题:1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance 摘要 本文详…...

在服务器上搭建gitlab
最终效果展示: 官方文档: 安装部署GitLab服务 1.在服务器上下载gitlab wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm rpm -ivh gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm 2.编辑站点位置 vim …...

Amazon Aurora Serverless v2 正式发布:针对要求苛刻的工作负载的即时扩展
我们非常兴奋地宣布,Amazon Aurora Serverless v2 现已面向 Aurora PostgreSQL 和 MySQL 正式发布。Aurora Serverless 是一种面向 Amazon Aurora 的按需自动扩展配置,可让您的数据库根据应用程序的需求扩展或缩减容量。 亚马逊云科技开发者社区为开发者…...

nginx的优化和防盗链 重要!!!
实验一、隐藏版本号 要把nginx的版本号隐藏起来,防止恶意攻击 方法一:修改配置文件 在http模块中加入一个命令 server_token off; 过程: 备份,改配置文件一定要备份 修改配置文件 在http模块中添加 server_tokens …...

十五.redis缓存穿透,击穿,雪崩
redis哨兵模式 一.缓存穿透1.概念2.解决方案1)接口校验2)缓存空值3)布隆过滤器4)实时监控 二.缓存击穿1.概念2.解决方案1)设置热点数据永不过期2)加互斥锁3)”提前“使用互斥锁 / 逻辑过期4&…...

Spring源码——初识Spring容器
Spring源码之工厂(容器) 为什么把Spring的工厂又叫做容器呢? 工厂的责任是创建对象,但是创建完对象后还要进行存储(针对于单例的对象来讲),以供其他地方使用,这就是容器。为了能存…...

arcgis--数据库构建网络数据集
1、打开arcmap软件,导入数据,如下: 该数据已经过处理,各交点处均被打断,并进行了拓扑检查。 2、在文件夹下新建文件数据库,名称为路网,在数据库下新建要素类,并导入道路shp文件&…...

华为OD机试真题【西天取经】
1、题目描述 【西天取经】 唐僧师徒四人去西天取经,一路翻山越岭。一日,师徒四人途径一个 mxn 长方形区域,已知 1.将取经队伍作为一个整体,4 人行走相同路线。 2.取经队伍的起点为该长方形区域的左上角,目的地为该长方…...

心电信号时域特征分析与Python实现
目录 1 引言 2 心电信号时域特征的含义 3 Python实现心电信号时域特征提取 4 结论 1 引言 心电信号是由心脏电活动引起的电信号...

认识MyBatis 之 MyBatis的动态SQL
前言 本篇介绍MyBatis里如何使用动态SQL,了解如何去简单使用动态标签;如有错误,请在评论区指正,让我们一起交流,共同进步! 文章目录 前言MyBatis - 动态 SQLif标签trim标签where标签update set 标签delet…...

【项目 计网2】4.4网络模型 4.5协议 4.6网络通信的过程
文章目录 4.4网络模型OSI七层参考模型TCP/IP四层模型(常用)简介四层介绍 4.5协议简介常见协议UDP协议TCP协议IP协议以太网帧协议(MAC地址封装)ARP协议(IP->MAC) 4.6网络通信的过程封装分用 4.4网络模型 …...

redis入门3-在java中操作redis
Redis的java客户端 Jedis、Lettuce、Redisson、以及spring提供的spring data redis Jedis操作redis //添加依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.8.0</version> </dep…...

网络安全预警分类流程
网络安全预警指南 随着信息技术的广泛应用与快速发展,传统业务与信息系统的融合程度不断加深,网络安全对国家政治、经济、文化、公共服务活动的影响进一步增大。网络安全形势日趋复杂,安全威胁不断变化,利用网络漏洞、恶意程序从…...

SpringBoot复习:(20)如何把bean手动注册到容器?
可以通过实现BeanDefinitionRegistryPostProcessor接口,它的父接口是BeanFactoryPostProcessor. 步骤: 一、自定义一个组件类: package com.example.demo.service;public class MusicService {public MusicService() {System.out.println(&q…...

VLT:Vision-Language Transformer用于引用的视觉语言转换和查询生成分割
摘要 在这项工作中,我们解决了引用分割的挑战性任务。引用分割中的查询表达式通常通过描述目标对象与其他对象的关系来表示目标对象。因此,为了在图像中的所有实例中找到目标实例,模型必须对整个图像有一个整体的理解。为了实现这一点&#…...

【开源项目--稻草】Day04
【开源项目--稻草】Day04 1. 续 VUE1.1 完善VUEAJAX完成注册功能 Spring验证框架什么是Spring验证框架使用Spring-Validation 稻草问答-学生首页显示首页制作首页的流程开发标签列表标签列表显示原理 从业务逻辑层开始编写控制层代码开发问题列表开发业务逻辑层开发页面和JS代码…...

【数模】奇异值分解SVD和图形处理
介绍奇异值分解在图形压缩中的运用,并将简单介绍下Matlab对于图形和视频的处理 一、奇异值分解介绍 1.1 基本概念 奇异值分解(Singular Value Decomposition,以下简称SVD)是线性代数中一种重要的矩阵分解: U和V都是正交矩阵∑是奇异值矩阵&…...

mongodb-win32-x86_64-2008plus-ssl-3.6.23-signed.msi
Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。C:\Users\Administrator>cd C:\MongoDB\Server\3.6\binC:\MongoDB\Server\3.6\bin> C:\MongoDB\Server\3.6\bin> C:\MongoDB\Server\3.6\bin>mongod --dbpath C:\Mongo…...

华为Euler系统忘记密码之密码重置
目录 1. 进入GRUB引导菜单编辑模式2. 指定系统在启动时使用/bin/sh作为初始化进程3. 修改密码3.1 重新挂载文件系统,使文件系统可写3.2 修改密码3.3 重新标记文件的安全上下文 4. 开机输入修改的密码正常登录 1. 进入GRUB引导菜单编辑模式 启动openEuler࿰…...

Java-多线程-深入理解ConcurrentHashMap
目录 什么是ConcurrentHashMap?为什么有ConcurrentHashMap?和HashMap区别示例代码对比 JDK7和JDK8中ConcurrentHashMap整体架构的区别JDK7中JDK8中 ConcurrentHashMap的基本功能在性能方面的优化使用到的技术-CAS概念说明比较并交换的过程如下࿱…...

没有配置redis但是报错连接redis失败
问题 没有配置redis但是报错连接redis失败 检查maven配置是否引入了redis依赖(可能是传递依赖,最好检查引进来的公共工程 解决办法 只需要在该工程application.yml文件中配置一下 redis就好,或者移除redis依赖 spring:redis:password: hos…...

剑指 Offer 04. 二维数组中的查找
力扣 在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix…...

【工作中问题解决实践 九】Spring中事务传播的问题排查
最近在工作中遇到了两个关于事务操作的问题,顺便就着这两个问题又回顾了一遍Spring的事务相关的操作,想着一次性把这个问题研究明白了,后续使用事务的时候也能踏实点,让事务发挥真实的作用 什么是事务?什么是事务管理…...

【导出Word】如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档(只含文本内容的模板)
这篇文章,主要介绍如何使用JavaFreemarker模板引擎,根据XML模板文件生成Word文档。 目录 一、导出Word文档 1.1、基础知识 1.2、制作模板文件 1.3、代码实现 (1)引入依赖 (2)创建Freemarker工具类 &…...

Devart dbForge Studio for MySQL Crack
Devart dbForge Studio for MySQL Crack dbForge Studio for MySQL是一个用于MySQL和MariaDB数据库开发、管理和管理的通用GUI工具。IDE允许您通过直观的界面创建和执行查询、开发和调试存储例程、自动化数据库对象管理、分析表数据。MySQL客户端提供了数据和模式比较和同步工具…...