为了更清楚起见,我粘贴了完整的代码。我的问题是关于“withdrawal()”函数。尽管循环使用不同的帐户名称,但第二个打印语句中的 account.name 变量仅显示列表中的第一个帐户名称
def validation(accounts):
pin = int(input("Enter 4 digits pin: "))
for account in accounts:
if pin == account.pin and len(str(pin)) == 4:
print("\nWelcome! {}, your account balance is ${}".format(account.name, account.balance))
return withdrawal(accounts)
print("\nInvalid pin.\n")
return try_again(accounts)
def withdrawal(accounts):
amount = int(input("\nEnter amount to withdraw: "))
for account in accounts:
if account.balance > amount:
account.balance -= amount
print("\nTransaction successful, your new balance is ${}".format(account.balance))
new = input("\nNew transaction? YES/NO?: ")
if new.lower() == "yes":
return withdrawal(accounts)
print("\nTake your card {}. Thank you for banking with us.".format(account.name))
break
else:
print("\nTransaction failed due to insufficient funds.")
def try_again(accounts):
re_enter = input("Enter YES to try again or NO to exit: ")
if re_enter.lower() == "yes":
return "\n" + validation(accounts)
elif re_enter.lower() == "no":
print("\nGoodbye. Take your card.")
else:
print("\nInvalid input. Take your card.")
class Account:
def __init__(self, name, pin, balance):
self.name = name
self.pin = pin
self.balance = balance
accounts = [Account("Bryan Somto", 4289, 300000), Account("Dubem Vic", 3329, 250000), Account("Munz Gee", 2200, 220000)]
validation(accounts)
慕容森
相关分类