在Python 3中,我有一個程序編碼如下。它基本上接受用戶的輸入並根據字典(EXCHANGE_DATA)進行檢查並輸出信息列表。忽略KeyError並繼續執行程序
from shares import EXCHANGE_DATA
portfolio_str=input("Please list portfolio: ")
portfolio_str= portfolio_str.replace(' ','')
portfolio_str= portfolio_str.upper()
portfolio_list= portfolio_str.split(',')
print()
print('{:<6} {:<20} {:>8}'.format('Code', 'Name', 'Price'))
EXCHANGE_DATA = {code:(share_name,share_value) for code, share_name, share_value in EXCHANGE_DATA}
try:
for code in portfolio_list:
share_name, share_value = EXCHANGE_DATA[code]
print('{:<6} {:<20} {:>8.2f}'.format(code, share_name, share_value))
except KeyError:
pass
示例輸入: GPG,HNZ,DIL,FRE
輸出如下:
Please list portfolio: GPG,HNZ,DIL,FRE
Code Name Price
GPG Guinnesspeat 2.32
HNZ Heartland Nz 3.85
DIL Diligent 5.30
FRE Freightway 6.71
但是,如果我有等的輸入:
AIR,HNZ,AAX,DIL,AZX
其中術語AAX,AZX
不存在於字典(EXCHANGE_DATA)
,但條款AIR,HNZ,DIL
做。該計劃顯然會拋出KeyError
例外,但我用pass
抵消了這一點。問題是執行了pass
代碼後,程序退出,我需要它繼續並在DIL
上執行for
循環。我該怎麼做呢?
你是真棒。謝謝 – jevans 2013-03-27 07:53:17
只需使用'pass'即可在此工作。 – 2013-03-27 07:53:33
@jevans歡迎你 – 2013-03-27 07:54:09