写在前面
今天使用内嵌函数实现一个简单的银行存取款案例小程序,分享给大家,希望能够对你们有所帮助~
郑重声明:本人目前仅在CSDN这一个平台发布文章,其他小伙伴如果想转载 或者引用请注明引用来源,未经许可不得直接搬运,请尊重创作人的劳动成果,谢谢!
一、需求分析
主要功能包括:存钱、取钱和余额查询。
整体流程如下图
下面带大家看一下最终的展示效果:
二、编程思路
在最外层定义一个bank()函数,实现新用户的开户功能,里面包含四个内嵌函数。putMoney()函数实现存钱的功能,参数number表示存钱的数量,将该值累加到外部变量money上;gutMoney()函数实现取钱的功能,参数number表示取钱的数量,对外部变量money做减法操作;seeMoney()函数表示查看当前用户的余额;最后是一个menu()函数,表示操作的菜单选择,允许用户重复选择各项操作,当用户选择退出时,结束循环。
三、实现过程
首先定义bank()函数,然后编写四个内嵌函数即可。
def bank(accountID,name,money=0):#新储户的开户功能
print("新开账户信息:\n---------------------")
print("账号:",accountID)
print("姓名:",name)
print("余额:",money)
print()
1.getMoney()函数
def getMoney(number):#取款函数
nonlocal money
if isinstance(number,(int,float))==True:
if number>=0 and number<=money:
money=money-number
else:
print("余额不足!")
else:
print("取款金额应该为数字类型!")
seeMoney()
2.putMoney()函数
def putMoney(number):#存款函数
nonlocal money
if isinstance(number,(int,float))==True:
if number>=0:
money=money+number
else:
print("存款金额不能为负数!")
else:
print("存款金额应该为数字类型!")
seeMoney()
3.menu()函数
def menu():#定义菜单项
print("当前账户信息:\n-----------------")
print("账号:", accountID)
print("姓名:", name)
while True:
try:
opNum = int(input("请输入要执行的操作:(1.存钱 2.取钱 3.查询余额 4.退出)"))
if opNum == 1:
number = int(input("请输入存款金额:"))
putMoney(number)
elif opNum==2:
number=int(input("请输入取款金额:"))
getMoney(number)
elif opNum==3:
seeMoney()
elif opNum==4:
print("退卡成功!\n")
break
else:
print("请输入有效操作!")
except:
print("请输入有效操作!")
return menu
以上就是本程序的核心函数,完整代码在下边给出。
四、完整代码
def bank(accountID,name,money=0):#新储户的开户功能
print("新开账户信息:\n---------------------")
print("账号:",accountID)
print("姓名:",name)
print("余额:",money)
print()
def seeMoney():
print("最新余额:",money) #正确无异常
#print("最新余额:"+str(money))正确无异常
#print("最新余额:"+money) 错误有异常
def putMoney(number):#存款函数
nonlocal money
if isinstance(number,(int,float))==True:
if number>=0:
money=money+number
else:
print("存款金额不能为负数!")
else:
print("存款金额应该为数字类型!")
seeMoney()
def getMoney(number):#取款函数
nonlocal money
if isinstance(number,(int,float))==True:
if number>=0 and number<=money:
money=money-number
else:
print("余额不足!")
else:
print("取款金额应该为数字类型!")
seeMoney()
def menu():#定义菜单项
print("当前账户信息:\n-----------------")
print("账号:", accountID)
print("姓名:", name)
while True:
try:
opNum = int(input("请输入要执行的操作:(1.存钱 2.取钱 3.查询余额 4.退出)"))
if opNum == 1:
number = int(input("请输入存款金额:"))
putMoney(number)
elif opNum==2:
number=int(input("请输入取款金额:"))
getMoney(number)
elif opNum==3:
seeMoney()
elif opNum==4:
print("退卡成功!\n")
break
else:
print("请输入有效操作!")
except:
print("请输入有效操作!")
return menu
users=[]#保存银行的所有储户
users.append(bank(1001,"张三"))
users.append(bank(1002,"李四",10000))
#使用索引调用函数
users[0]()
users[1]()
小知识点:使用了nonlocal关键字声明money是外部变量
引用源自
中国MOOC Python编程基础 https://www.icourse163.org/course/HBRJ-1206206801
本篇完,如有错误欢迎指出~