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

作者:阳862 时间:2021-07-17 12:06:46 

一.局部变量、全局变量

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)

结果是

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

三.编写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

运行结果

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

存在问题

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

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

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

改进

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

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

这样运行结果就是

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

完整代码

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

来源:https://blog.csdn.net/weixin_63318044/article/details/128092565

标签:Python,ATM
0
投稿

猜你喜欢

  • Web Design广告字体设计技巧

    2010-06-24 21:52:00
  • Python3实现从文件中读取指定行的方法

    2021-01-06 04:18:17
  • Go语言实现超时的三种方法实例

    2023-06-22 18:32:43
  • Python轻松破解加密压缩包教程详解

    2021-04-12 13:26:45
  • php开启mysqli扩展之后如何连接数据库

    2023-11-14 17:36:08
  • Python实现曲线点抽稀算法的示例

    2023-02-11 02:57:58
  • pyecharts绘制各种数据可视化图表案例附效果+代码

    2022-07-08 08:30:03
  • python基于BeautifulSoup实现抓取网页指定内容的方法

    2022-11-29 12:11:48
  • 如何解决因使用On Error Resume Next导致错误不正确的问题?

    2009-12-16 18:34:00
  • 用户体验之网页板块设计

    2011-05-14 16:41:00
  • 用CSS实现柱状图(Bar Graph)的方法(二)—基于表格元素的柱状图

    2008-05-26 13:23:00
  • Python并发编程实例教程之线程的玩法

    2022-02-02 08:17:41
  • Python标准库之typing的用法(类型标注)

    2021-09-27 01:25:24
  • python 性能提升的几种方法

    2022-05-21 06:38:18
  • selenium中get_cookies()和add_cookie()的用法详解

    2023-10-22 14:27:19
  • Python利用第三方模块实现压缩css文件

    2023-04-28 07:21:02
  • 详解PyTorch中Tensor的高阶操作

    2021-11-24 12:08:00
  • Python import与from import使用及区别介绍

    2022-05-17 12:09:19
  • python使用wxpython开发简单记事本的方法

    2022-05-15 18:06:12
  • ASC码对照表

    2008-08-07 13:07:00
  • asp之家 网络编程 m.aspxhome.com