global关键字、python实现ATM简单功能
创始人
2024-02-27 19:14:33
0

目录

一.局部变量、全局变量

二.global关键字

演示

 三.编写ATM程序

要求

详细步骤

存在问题

改进

 完整代码


 

一.局部变量、全局变量

1.什么是局部变量

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

2.什么是全局变量

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

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

使用global关键字,global变量

二.global关键字

思考:

 

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

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

演示

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

结果是

 三.编写ATM程序

要求

定义一个全局变量: money,用来记录银行卡余额(默认5000000)
定义一个全局变量: name,用来记录客户姓名(启动程序时输入)
定义如下的函数:

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

程序启动后要求输入客户姓名
查询余额、存款,取款后都会返回主菜单
存款、取款后,都应显示一下当前余额
客户选择退出或输入错误,程序会退出,否则一直运行

详细步骤

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

2.定义查询函数

 3.定义存款函数

4.定义取款函数

 

 5.定义主菜单

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

 运行结果

存在问题

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

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

改进

 

 这样运行结果就是

 

 完整代码

money = 500000
name = None#输入姓名
name = input("请输入您的姓名:")#定义查询函数
def query(show_header):if show_header:print("------------查询余额--------------")print(f"{name},您好,您所剩余额为{money}")#定义存款
def saving(num):global moneymoney+=numprint("------------存款--------------")print(f"{name},您好,您存入{money}成功")query(False)#定义取款
def get_money(num):global moneymoney -= numprint("------------取款--------------")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)continueelif keyboard_input=="2":num =int(input("您想存入多少钱:"))saving(num)continueelif keyboard_input=="3":num = int(input("您想取出多少钱:"))get_money(num)continueelse:print("程序退出了!")break

 

 

 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...