官术网_书友最值得收藏!

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ù)量的賬戶。

主站蜘蛛池模板: 永德县| 南昌县| 蓝田县| 聊城市| 德惠市| 山东省| 大厂| 丹东市| 泰安市| 喀喇| 东宁县| 宕昌县| 九台市| 获嘉县| 滦南县| 龙井市| 吉隆县| 方山县| 雷州市| 五莲县| 荣成市| 凉城县| 五指山市| 什邡市| 东安县| 读书| 西昌市| 海阳市| 灵武市| 定安县| 肃宁县| 得荣县| 连平县| 鄱阳县| 永修县| 灵宝市| 荥经县| 新绛县| 邳州市| 林芝县| 邯郸市|