回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>在Python 3中,我有一个代码如下的程序。它基本上是从用户那里获取一个输入,并将其与字典(交换数据)进行核对,然后输出一个信息列表。</p>
<pre><code>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
</code></pre>
<p>输入示例:
<code>GPG,HNZ,DIL,FRE</code></p>
<p>输出如下:</p>
<pre><code>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
</code></pre>
<p>但是如果我有这样的输入:</p>
<p><code>AIR,HNZ,AAX,DIL,AZX</code></p>
<p>其中术语<code>AAX,AZX</code>不存在于字典<code>(EXCHANGE_DATA)</code>中,但术语<code>AIR,HNZ,DIL</code>存在。程序显然会抛出一个<code>KeyError</code>异常,但我已经用<code>pass</code>中和了这个异常。问题是在执行<code>pass</code>代码之后,程序退出,我需要它继续并在<code>DIL</code>上执行<code>for</code>循环。我该怎么做?</p>