• global关键字、python实现ATM简单功能


    目录

    一.局部变量、全局变量

    二.global关键字

    演示

     三.编写ATM程序

    要求

    详细步骤

    存在问题

    改进

     完整代码


     

    一.局部变量、全局变量

    1.什么是局部变量

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

    2.什么是全局变量

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

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

    使用global关键字,global变量

    二.global关键字

    思考:

     

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

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

    演示

    1. num = 200
    2. def A():
    3. print(f"A:{num}")
    4. def B():
    5. global num
    6. num = 500
    7. print(f"B:{num}")
    8. A()
    9. B()
    10. print(num)

    结果是

     三.编写ATM程序

    要求

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

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

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

    详细步骤

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

    2.定义查询函数

     3.定义存款函数

    4.定义取款函数

     

     5.定义主菜单

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

     运行结果

    存在问题

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

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

    改进

     

     这样运行结果就是

     

     完整代码

    1. money = 500000
    2. name = None
    3. #输入姓名
    4. name = input("请输入您的姓名:")
    5. #定义查询函数
    6. def query(show_header):
    7. if show_header:
    8. print("------------查询余额--------------")
    9. print(f"{name},您好,您所剩余额为{money}")
    10. #定义存款
    11. def saving(num):
    12. global money
    13. money+=num
    14. print("------------存款--------------")
    15. print(f"{name},您好,您存入{money}成功")
    16. query(False)
    17. #定义取款
    18. def get_money(num):
    19. global money
    20. money -= num
    21. print("------------取款--------------")
    22. print(f"{name},您好,您取出{num}成功")
    23. query(False)
    24. #定义主菜单
    25. def main():
    26. print("------------主菜单--------------")
    27. print(f"{name}您好,欢迎来到ATM,请选择操作")
    28. print("查询余额:输入1")
    29. print("存款: 输入2")
    30. print("取款: 输入3")
    31. print("退出: 输入4")
    32. return input("请输入您的选择:")
    33. #设置循环确保程序中不退出
    34. while True:
    35. keyboard_input = main()
    36. if keyboard_input=="1":
    37. query(True)
    38. continue
    39. elif keyboard_input=="2":
    40. num =int(input("您想存入多少钱:"))
    41. saving(num)
    42. continue
    43. elif keyboard_input=="3":
    44. num = int(input("您想取出多少钱:"))
    45. get_money(num)
    46. continue
    47. else:
    48. print("程序退出了!")
    49. break

     

     

     

  • 相关阅读:
    13_星仔带你学Java之接口、内部类、枚举
    支持JDK19虚拟线程的web框架,之一:体验
    AWS中的HVM和PV格式的AMI的区别
    制造业企业为什么需要数字化转型
    企业做3A有什么用?
    Numpy教程(一)
    得物多活架构设计之路由服务设计
    .NET应用多语言-葡萄牙语软件,如何处理本地化,特别是数字的转换和计算
    【uniapp+vue3/vue2】ksp-cropper高性能图片裁剪工具,详解
    设计模式之编程方法论
  • 原文地址:https://blog.csdn.net/weixin_63318044/article/details/128092565