Python实现ATM简单功能的示例详解
阳862 人气:0一.局部变量、全局变量
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
加载全部内容