本次实验想完成简单ATM操作,包括菜单栏和简单存钱取钱,显示余额。
存在的问题:
1使用全局变量的时候,会报错
local variable ‘money’ referenced before assignment
解决方法,在函数里面声明一下为全局变量。
#功能:1存钱2取钱3计算余额4查看余额
#变量:1用户,2余额
money=15000
user_name='菜虚鲲'
####打印主菜单并接受进行的操作
print('-----------------主菜单---------------')
print(f'{user_name}你好,请问你要进行的操作是:')
print('存钱:请输入1')
print('取钱:请输入2')
print('推出:请输入3')
print('查看余额:请输入4')
n1=int(input('请输入你要进行的操作:'))
def cunqian(a1):
global money
money+=a1
print('------------------存钱------------------')
print(f'{user_name}您的余额是:{money}')
def chaxunyue():
print('-------------------查询余额---------------')
print(f'{user_name}您的余额是:{money}')
def quqian(a2):
global money
money += a2
print('------------------存钱------------------')
print(f'{user_name}您的余额是:{money}')
#通过按键的不同选择不同的条件:
if n1==1:
print(f'{user_name},您好!')
cun=int(input('请输入你要存的金额:'))
cunqian(cun)
elif n1==2:
print(f'{user_name},您好!')
qu=int(input('请输入你要取的金额:'))
quqian(qu)
elif n1==4:
chaxunyue()
else:
print('------------推出---------')
print('请带好您的卡片')
1存钱:
简单实验了一下,发现,存完直接退出了,这个好像跟我们日常生活中的atm有点区别,功能还是很简陋啊。
另外,就是感觉这个代码很乱,我细想了一下,查询余额这部分,其实每一步都要用到,那是不是可以选择将一部分的print用函数嵌套来完成。
#功能:1存钱2取钱3计算余额4查看余额
#变量:1用户,2余额
money=15000
user_name='菜虚鲲'
####打印主菜单并接受进行的操作
print('-----------------主菜单---------------')
print(f'{user_name}你好,请问你要进行的操作是:')
print('存钱:请输入1')
print('取钱:请输入2')
print('推出:请输入3')
print('查看余额:请输入4')
n1=int(input('请输入你要进行的操作:'))
#查询余额
def chaxunyue(show_header):
if show_header:
print('-------------------查询余额---------------')
print(f'{user_name}您的余额是:{money}')
#存钱
def cunqian(a1):
global money
money+=a1
print('------------------存钱------------------')
chaxunyue(False)
#取钱
def quqian(a2):
global money
money += a2
print('------------------存钱------------------')
chaxunyue(False)
#通过按键的不同选择不同的条件:
if n1==1:
print(f'{user_name},您好!')
cun=int(input('请输入你要存的金额:'))
cunqian(cun)
elif n1==2:
print(f'{user_name},您好!')
qu=int(input('请输入你要取的金额:'))
quqian(qu)
elif n1==4:
chaxunyue(True)
else:
print('------------推出---------')
print('请带好您的卡片')
发现取钱还变多了,原来是取钱的时候写成了+=,尴尬。