- Python面向?qū)ο缶幊蹋簶?gòu)建游戲和GUI
- (美)艾維·卡爾布
- 459字
- 2023-06-29 17:17:46
1.2.4 實(shí)現(xiàn)3:兩個(gè)賬戶
代碼清單1-4中的銀行模擬程序采用了與代碼清單1-3相同的方法,但添加了支持兩個(gè)賬戶的功能。
代碼清單1-4:使用函數(shù)且支持兩個(gè)賬戶的銀行模擬程序(文件: Bank3_TwoAccounts.py)
# Non-OOP
# Bank 3
# Two accounts
account0Name = ‘’
account0Balance = 0
account0Password = ‘’
account1Name = ‘’
account1Balance = 0
account1Password = ‘’
nAccounts = 0
def newAccount(accountNumber, name, balance, password):
? global account0Name, account0Balance, account0Password
global account1Name, account1Balance, account1Password
if accountNumber == 0:
account0Name = name
account0Balance = balance
account0Password = password
if accountNumber == 1:
account1Name = name
account1Balance = balance
account1Password = password
def show():
? global account0Name, account0Balance, account0Password
global account1Name, account1Balance, account1Password
if account0Name != ‘’:
print(‘Account 0’)
print(‘ Name’, account0Name)
print(‘ Balance:’, account0Balance)
print(‘ Password:’, account0Password)
print()
if account1Name != ‘’:
print(‘Account 1’)
print(‘ Name’, account1Name)
print(‘ Balance:’, account1Balance)
print(‘ Password:’, account1Password)
print()
def getBalance(accountNumber, password):
? global account0Name, account0Balance, account0Password
global account1Name, account1Balance, account1Password
if accountNumber == 0:
if password != account0Password:
print(‘Incorrect password’)
return None
return account0Balance
if accountNumber == 1:
if password != account1Password:
print(‘Incorrect password’)
return None
return account1Balance
--- snipped additional deposit() and withdraw() functions ---
--- snipped main code that calls functions above ---
print(‘Done’)
即使只有兩個(gè)賬戶,也可以看出來,這種方法很快會變得難以處理。首先,我們在??和?那里為每個(gè)賬戶設(shè)置了3個(gè)全局變量。另外,每個(gè)函數(shù)現(xiàn)在有一個(gè)if語句,用于選擇訪問或修改哪組全局變量。每當(dāng)我們想要添加另外一個(gè)賬戶時(shí),就需要添加另外一組全局變量,并在每個(gè)函數(shù)中添加更多if語句。這并不是一種可行的方法。要用一種不同的方式來處理任意數(shù)量的賬戶。
推薦閱讀
- C#程序設(shè)計(jì)教程
- 21天學(xué)通C++(第6版)
- D3.js 4.x Data Visualization(Third Edition)
- Mastering JavaScript Design Patterns(Second Edition)
- Extending Puppet(Second Edition)
- 學(xué)習(xí)OpenCV 4:基于Python的算法實(shí)戰(zhàn)
- Android應(yīng)用開發(fā)深入學(xué)習(xí)實(shí)錄
- Java Web從入門到精通(第3版)
- Learning Kotlin by building Android Applications
- 網(wǎng)頁設(shè)計(jì)與制作
- Roslyn Cookbook
- 鋁合金陽極氧化與表面處理技術(shù)(第三版)
- Spark for Data Science
- Raspberry Pi By Example
- Web 2.0策略指南