擅长:python、mysql、java
<p>你的字典是向后的,它应该是一个列表或元组。你知道吗</p>
<pre><code>def determineRank(years):
return [None, 'Freshman', 'Sophomore', 'Junior', 'Senior'][years]
</code></pre>
<p>通过将定义绑定为默认参数,可以避免在每个调用上创建新的列表或元组:</p>
<pre><code>def determineRank(years, ranks=(None, 'Freshman', 'Sophomore', 'Junior', 'Senior')):
return ranks[years]
</code></pre>
<p>您可以通过使用模运算避免无关的<code>None</code>:</p>
<pre><code>def determineRank(years, ranks=('Freshman', 'Sophomore', 'Junior', 'Senior')):
return ranks[years%len(ranks)]
</code></pre>
<p>请注意,您的原始代码通过返回第4年的<code>'Senior'</code>和所有其他输入</em>来更优雅地处理错误输入(但仍然不正确),而上面的代码片段对于错误输入有各种行为(如<code>20</code>或<code>'hello'</code>)。你知道吗</p>