项目总目标:用面向过程思想设计一个简单的银行账号模拟程序。本次将迭代多个程序版本,每个版本都将添加更多功能。虽然这些程序没有达到发布的质量标准,但整个项目的目的是关注于代码如何与一个或多个银行账户的数据进行交互。
分析项目的必要操作和数据:
客户对银行账户的操作包括 创建账户;存款,取款,查询余额
银行需要的数据包括 客户姓名;密码;余额
项目2.2 单个账户的取款与查看余额
# 定义了账户的相关信息
accountName = 'Joe'
accountBalance = 100
accountPassword = 'abed'
# 表示程序将一直执行,直到遇到break语句跳出循环。
while True:
# 在每次循环开始时,会打印出一些指令供用户选择操作。指令包括查询余额、存钱、取款、显示账户和退出系统。
print()
print('b 查询余额')
print('d 存钱')
print('w 取款')
print('s 显示账户')
print('q 退出系统')
print()
action = input('输入指令: ')
action = action.lower() # force lowercase
action = action[0] # just use first letter
print()
# 用户输入的指令进行处理。在这段代码中,只处理了取钱('w')的操作
if action == 'w':
print('取钱:')
userWithdrawAmount = input('输入存钱数量(整数): ')
userWithdrawAmount = int(userWithdrawAmount)
userPassword = input('请输入密码: ')
# 如果取款数量为非负数且密码验证通过并取款数量大于账户余额,那么将存款金额加到账户余额accountBalance上
if userWithdrawAmount < 0:
print('不可以取出负数!')
elif userPassword != accountPassword:
print('密码错误')
elif userWithdrawAmount > accountBalance:
print('不可取出大于账户余额的钱')
else:
accountBalance = accountBalance - userWithdrawAmount
print('当前账号余额为:', accountBalance)
# 用户输入的指令进行处理。在这段代码中,处理了显示余额('b')的操作
elif action == 'b':
print('显示余额:')
userPassword = input('请输入密码: ')
if userPassword != accountPassword:
print('密码错误')
else:
print('当前账户余额为: ', accountBalance)
效果如下:
代码分析:
这段代码是一个简单的银行账户程序,用于处理取款和查询余额操作。
首先,定义了账户的相关信息,包括账户名称、账户余额和账户密码。
接下来,使用一个无限循环while True
,表示程序将一直执行,直到遇到break
语句跳出循环。
在每次循环开始时,会打印出一些指令供用户选择操作。指令包括查询余额、存钱、取款、显示账户和退出系统。
然后,程序会要求用户输入一个指令,将用户输入的指令存储在变量action
中。
接下来,对用户输入的指令进行处理。分别处理了取钱('d')和查询余额 ('b') 的操作。
如果用户选择了取钱操作,程序会要求用户输入取款的数量(整数)和密码。
然后,程序会进行一系列验证:
- 首先,检查用户输入的取款数量
userDepositAmount
是否小于0 - 其次,检查用户输入的密码
userPassword
是否与账户密码accountPassword
相等 - 接着,检查用户输入的取款数量是否已大于当前余额
- 如果存款数量为非负数且密码验证通过且小于当前余额,那么将取款金额从账户余额扣除。
这样,当用户选择取钱操作并通过验证时,显示更新后的余额给用户。
需要注意的是,这只是程序的一部分,只处理了取钱操作和查询余额,其他指令没有进行处理。后面的项目陆续会包含对这些指令的处理逻辑。·