擅长:python、mysql、java
<p>你的措辞不是100%清楚,但我想你是在问你是否能更有效地检查输入的内容。有几种方法比你现在所拥有的更短、更灵活。你知道吗</p>
<p>您需要检查输入的长度是否为4,并且不包含非法字符。您的代码在功能上是可以做到这一点的,但不是非常维护友好。检查<code>len(guess) == 4</code>对于第一部分来说是完美的。第二个在<a href="https://stackoverflow.com/q/1323364/2988730">this question</a>中有大约六个解。以下是前三名的总结:</p>
<ol>
<li><pre><code># Initialize this at module level
allowed = set('rgbyow')
# This is the check:
if len(guess) == 4 and set(guess.lower()) < allowed:
# OK
</code></pre></li>
<li><pre><code># Initialize this at module level
allowed = set('rgbyow')
# This is the check:
if len(guess) == 4 and all(c in allowed for c in guess.lower()):
# OK
</code></pre></li>
<li><pre><code># Initialize this at module level
import re
allowed_expr = re.compile('[rgbyowRGBYOW]{4}')
# This is the check:
if allowed_expr.match(guess):
# OK
</code></pre></li>
</ol>