擅长:python、mysql、java
<p>代码中的几个问题:</p>
<ul>
<li>您应该在函数中定义<code>upper_chars</code>变量</li>
<li>在循环中,应该对字符而不是整个字符串调用<code>isupper()</code></li>
<li>你的函数应该返回</li>
<li>你应该调用函数</li>
<li><code>if</code>块中的缩进错误</li>
</ul>
<p>下面是修复代码:</p>
<pre><code>def only_upper(s):
upper_chars = ""
for char in s:
if char.isupper():
upper_chars += char
return upper_chars
print only_upper("HeLLo WorLD")
</code></pre>
<hr/>
<p>此外,您还可以使用<code>filter()</code>:</p>
<pre><code>def only_upper(s):
return filter(lambda x: x.isupper(), s)
print only_upper("HeLLo WorLD")
</code></pre>
<p>或:</p>
<pre><code>def only_upper(s):
return "".join(c for c in s if c.isupper())
print only_upper("HeLLo WorLD")
</code></pre>
<p>两种打印:</p>
<pre><code>HLLWLD
</code></pre>