Python实现ATM简单功能的示例详解

目录
  • 一.局部变量、全局变量
  • 二.global关键字
  • 三.编写ATM程序
    • 要求
    • 详细步骤
    • 存在问题
    • 改进
    • 完整代码

一.局部变量、全局变量

1.什么是局部变量

作用范围在函数内部,在函数外部无法使用

2.什么是全局变量

在函数内部和外部均可使用

3.如何将函数内定义的变量声明为全局变量

使用global关键字,global变量

二.global关键字

思考:

num=100

def testsA()
   print(num)

def testB()
   num=200
   print(num)

testA()                          #结果:100
testB()                          #结果:200
print(f'全局变量num={num}')      #结果:全局变量num=100

testB函数需要修改变量num的值为200,如何修改程序?

这时我们就需要把局部变量转变为全局变量,利用global关键字

演示

num = 200
def A():
    print(f"A:{num}")
def B():
    global num
    num = 500
    print(f"B:{num}")

A()
B()
print(num)

结果是

三.编写ATM程序

要求

定义一个全局变量: money,用来记录银行卡余额(默认5000000)

定义一个全局变量: name,用来记录客户姓名(启动程序时输入)

定义如下的函数:

  • 查询余额函数
  • 存款函数
  • 取款函数
  • 主菜单函数

程序启动后要求输入客户姓名

查询余额、存款,取款后都会返回主菜单

存款、取款后,都应显示一下当前余额

客户选择退出或输入错误,程序会退出,否则一直运行

详细步骤

1.定义全局变量,输入姓名

#定义全局变量
money = 500000
name = None

#输入姓名
name = input("请输入您的姓名:")

2.定义查询函数

#定义查询函数
def query(show_header):
    if show_header:
        print("------------查询余额--------------")
    print(f"{name},您好,您所剩余额为{money}")

3.定义存款函数

#定义存款
def saving(num):
    global money
    money+=num
    print("------------存款--------------")
    print(f"{name},您好,您存入{money}成功")

    query()

4.定义取款函数

#定义取款
def get_money(num):
    global money
    money -= num
    print("------------取款--------------")
    print(f"{name},您好,您取出{num}成功")

    query()

5.定义主菜单

#定义主菜单
def main():
    print("------------主菜单--------------")
    print(f"{name}您好,欢迎来到ATM,请选择操作")
    print("查询余额:输入1")
    print("存款:   输入2")
    print("取款:   输入3")
    print("退出:   输入4")
    return input("请输入您的选择:")

6.设置循环,确保持续中途不退出

#设置循环确保程序中不退出
while True:
    keyboard_input = main()
    if keyboard_input=="1":
        query(True)
        continue
    elif keyboard_input=="2":
        num =int(input("您想存入多少钱:"))
        saving(num)
        continue
    elif keyboard_input=="3":
        num = int(input("您想取出多少钱:"))
        get_money(num)
        continue
    else:
        print("程序退出了!")
        break

运行结果

存在问题

但我们进行存款或者取款的时候,会调用查询余额函数,在查询余额函数中会输出这个:

但是,我只想这一print只在单独调用查询余额函数时才出现,为实现这一目标那就需要就一个if判断语句

改进

这样运行结果就是

完整代码

money = 500000
name = None

#输入姓名
name = input("请输入您的姓名:")

#定义查询函数
def query(show_header):
    if show_header:
        print("------------查询余额--------------")
    print(f"{name},您好,您所剩余额为{money}")

#定义存款
def saving(num):
    global money
    money+=num
    print("------------存款--------------")
    print(f"{name},您好,您存入{money}成功")

    query(False)

#定义取款
def get_money(num):
    global money
    money -= num
    print("------------取款--------------")
    print(f"{name},您好,您取出{num}成功")

    query(False)

#定义主菜单
def main():
    print("------------主菜单--------------")
    print(f"{name}您好,欢迎来到ATM,请选择操作")
    print("查询余额:输入1")
    print("存款:   输入2")
    print("取款:   输入3")
    print("退出:   输入4")
    return input("请输入您的选择:")
#设置循环确保程序中不退出
while True:
    keyboard_input = main()
    if keyboard_input=="1":
        query(True)
        continue
    elif keyboard_input=="2":
        num =int(input("您想存入多少钱:"))
        saving(num)
        continue
    elif keyboard_input=="3":
        num = int(input("您想取出多少钱:"))
        get_money(num)
        continue
    else:
        print("程序退出了!")
        break

到此这篇关于Python实现ATM简单功能的示例详解的文章就介绍到这了,更多相关Python ATM功能内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实现ATM系统

    今天偶尔在知乎上看到某大佬用Python写的ATM系统案例,然后观摩了下他的实现思路和源码,感觉受益颇多,于是就根据自己的思路和目前掌握的Python编程基础将ATM实现了一下,以下是案例解析的过程: 案例剖析: 1.atm主页面显示. 2.账号验证. 3.查询余额. 4.存款. 5.取款. 6.修改密码. ps:我的思路是将以上的功能分成几大块,通过函数,循环和返回值来实现,话不多说直接上代码. 代码: 1.atm主页面显示 def index(nowUser): print('=' * 10

  • Python ATM功能实现代码实例

    编写ATM程序实现下述功能,数据来源于文件db.txt 1.充值功能:用户输入充值钱数,db.txt中该账号钱数完成修改 2.转账功能:用户A向用户B转账1000元,db.txt中完成用户A账号减钱,用户B账号加钱 3.提现功能:用户输入提现金额,db.txt中该账号钱数减少 4.查询余额功能:输入账号查询余额 登录功能 用户登录成功后,内存中记录下该状态,上述功能以当前登录状态为准,必须先登录才能操作 代码如下 import os user_staus = {'username': None}

  • Python实战之ATM取款机的实现

    目录 一.项目视图分析 二.文件结构分析 三.完整代码 1.start.py 2.conf 3.core 4.interface 5.db 6.lib 7.readme 一.项目视图分析 通过上图,我们可以看到,一个完整的项目,基本包括三个部分:用户视图层.接口层.数据处理层,其中,用户视图层是用来接收用户的数据输入的,比如:有户名,密码:接口层是要接收用户视图层传来的数据,然后做判断:名字是否存在.密码是否正确,这就要求接口层调用数据处理层的方法:数据处理层就需要接收接口层的参数,把接口层需要

  • Python实现ATM简单功能的示例详解

    目录 一.局部变量.全局变量 二.global关键字 三.编写ATM程序 要求 详细步骤 存在问题 改进 完整代码 一.局部变量.全局变量 1.什么是局部变量 作用范围在函数内部,在函数外部无法使用 2.什么是全局变量 在函数内部和外部均可使用 3.如何将函数内定义的变量声明为全局变量 使用global关键字,global变量 二.global关键字 思考: num=100 def testsA() print(num) def testB() num=200 print(num) testA(

  • Python实现邮件发送功能的示例详解

    想实现发送邮件需要经过以下几步: 1.登录邮件服务器 2.构造符合邮件协议规则要求的邮件内容 3.发送 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件,它对smtp协议进行了简单的封装. 这里我们用qq邮箱为例,并且自己是可以给自己发邮件的. 在开始前我们先做准备工作: 登录qq邮箱,后点击“设置” 点击“账户” 确保前两项已开启,然后点击生成授权码. 因为我们网页登录时的密码是不可以用来python上使用:qq为了安全,我们平

  • Python人工智能构建简单聊天机器人示例详解

    目录 引言 什么是聊天机器人? 准备工作 创建聊天机器人 导入必要的库 定义响应集合 创建聊天机器人 运行聊天机器人 完整代码 结论 展望 引言 人工智能是计算机科学中一个非常热门的领域,近年来得到了越来越多的关注.它通过模拟人类思考过程和智能行为来实现对复杂任务的自主处理和学习,已经被广泛应用于许多领域,包括语音识别.自然语言处理.机器人技术.图像识别和推荐系统等. 本文将介绍如何使用Python构建一个简单的聊天机器人,以展示人工智能的基本原理和应用.我们将使用Python语言和自然语言处理

  • 详解Python中生成随机数据的示例详解

    目录 随机性有多随机 加密安全性 PRNG random 模块 数组 numpy.random 相关数据的生成 random模块与NumPy对照表 CSPRNG 尽可能随机 os.urandom() secrets 最佳保存方式 UUID 工程随机性的比较 在日常工作编程中存在着各种随机事件,同样在编程中生成随机数字的时候也是一样,随机有多随机呢?在涉及信息安全的情况下,它是最重要的问题之一.每当在 Python 中生成随机数据.字符串或数字时,最好至少大致了解这些数据是如何生成的. 用于在 P

  • Python+FuzzyWuzzy实现模糊匹配的示例详解

    目录 1. 前言 2. FuzzyWuzzy库介绍 2.1 fuzz模块 2.2 process模块 3. 实战应用 3.1 公司名称字段模糊匹配 3.2 省份字段模糊匹配 4. 全部函数代码 在日常开发工作中,经常会遇到这样的一个问题:要对数据中的某个字段进行匹配,但这个字段有可能会有微小的差异.比如同样是招聘岗位的数据,里面省份一栏有的写“广西”,有的写“广西壮族自治区”,甚至还有写“广西省”……为此不得不增加许多代码来处理这些情况. 今天跟大家分享FuzzyWuzzy一个简单易用的模糊字符

  • Python实现邮件发送功能的方法详解

    目录 利用 python 发送普通邮件 认识发送邮件流程 认识邮件协议 smtplib 模块 email 包 发送邮件小案例 发送邮件的避坑总结 邮件自动化篇章所需的新模块: smtplib 邮件协议与发送模块 email 内容定义模块 schedule 定时模块 smtplib 与 email 模块 可以帮助我们正常的发送邮件: schedule 模块可以帮助我们定时发送邮件,比如工资邮件等需要固定时间发送的邮件 利用 python 发送普通邮件 认识发送邮件流程 这里简单描述下发邮件的过程(

  • Python实现邮件自动下载的示例详解

    开始码代码之前,我们先来了解一下三种邮件服务协议: 1.SMTP协议 SMTP(Simple Mail Transfer Protocol),即简单邮件传输协议.相当于中转站,将邮件发送到客户端. 2.POP3协议 POP3(Post Office Protocol 3),即邮局协议的第3个版本,是电子邮件的第一个离线协议标准.该协议把邮件下载到本地计算机,不与服务器同步,缺点是更易丢失邮件或多次下载相同的邮件. 3.IMAP协议 IMAP(Internet Mail Access Protoc

  • SQL实现Excel的10个常用功能的示例详解

    目录 01. 关联公式:Vlookup 02. 对比两列差异 03. 去除重复值 04. 缺失值处理 05. 多条件筛选 06. 模糊筛选数据 07. 分类汇总 08. 条件计算 09. 删除数据间的空格 10. 合并与排序列 SQL笔试题原题 某数据服务公司 某手游公司的SQL笔试题(原题) 某互联网金融公司SQL笔试题(原题) SQL,数据分析岗的必备技能,你可以不懂Python,R,不懂可视化,不懂机器学习.但SQL,你必须懂.要不然领导让你跑个数据来汇......,哦不,你不懂SQL都无

  • python案例中Flask全局配置示例详解

    目录 WEB服务全局配置 Flask全局配置 before_request after_request Flask自定义中间件 WEB服务全局配置 在目前的开发过市场当中,有很多WEB服务框架,Flask只是其中之一,但是总体上来看,所有的WEB框架都是依据HTTP协议的逻辑从请求到响应设计的.固然有很多功能是独立的,但是也有一部分功能需要全局设定,比如安全校验,比如埋点日志,那么这里就用到了全局配置. 所谓的全局配置,就是在框架全局,请求前后,响应前后,设置的全局配置,比如登录校验,这个功能并

  • 对python 生成拼接xml报文的示例详解

    最近临时工作要生成xml报名,通过MQ接口发送.简单小程序. 自增长拼成xml报文 Test_001.py # encoding=utf-8 import time orderId = '' s1= "\n" # for ID in range(1,5): item1 = "<item>" + \ "<orderID>" + str(ID) + "</orderID>" + \ "

随机推荐