擅长:python、mysql、java
<p>问题是,您使用的是var args。这是用一个列表包装传递的字符串,然后在该列表上迭代(该列表只包含一个字符串)。这意味着你的代码在某种程度上可以工作;它只是交替使用每个单词的大小写而不是每个字符。你知道吗</p>
<p>去掉var参数:</p>
<pre><code>def myfunc(word):
return ''.join([word[i].upper() if i%2==0 else word[i].lower() for i in range(len(word))])
print(myfunc("hello world"))
# HeLlo WoRlD
</code></pre>
<hr/>
<p>我要注意的是,有几种方法可以调试它。如果您检查了<code>args</code>的内容,就会发现当传递一个参数时它只包含一个元素,当传递两个参数时它只包含两个元素。如果你输入了两个参数,你也会注意到它把每个单词的大小写作为一个整体来交替。这可能会给你足够的线索让你弄明白。你知道吗</p>