擅长:python、mysql、java
<p>只要一个字符不在<code>phrase</code>中,循环就会添加到<code>pun</code>中,相反,您应该检查字符<em>是否在</em>短语中,<code>break</code>中。在此之前,您将继续向<code>pun</code>添加字符:</p>
<pre><code>for item in string:
if item in phrase:
break
pun += item
</code></pre>
<p>当执行时,它现在正确地输出<code>"dj"</code>。在</p>
<p>如果前面的方法还不够,您还可以考虑从<code>itertools</code>得到{<cd6>},如果前面的方法还不够:</p>
^{pr2}$
<p>还有一种方法不使用<code>break</code>(?)可能是通过使用一个布尔标志来指示是否看到了<code>phrase</code>中的值,然后在决定是否应该添加到<code>pun</code>时,可以根据该标志执行操作:</p>
<pre><code>phrase='!_#@%'
pun=''
string='dj!khaled'
seen = False
for item in string:
if item in phrase:
seen = True
if not seen:
pun += item
print(pun)
</code></pre>