<p>我是Python新手,正在编写一个函数来更改字符串中所有字符的大小写。函数本身称为swapcase(),我在自己的函数中使用库函数swapcase()。下面是我用来测试函数的代码:</p>
<pre><code>print(swapCases("HoLa"))
</code></pre>
<p>在第一种情况下,我的函数是:</p>
<pre><code>def swapCases(s):
for i in range(len(s)):
s[i] = s[i].swapcase()
return s
</code></pre>
<p>当我运行这段代码时,我从编译器得到一条消息:“str object不支持item赋值。”我搜索了这条消息,它说Python中的字符串是不可变的,因此不能更改。但是,当我将函数更改为:</p>
<pre><code>def swapCases(s):
s = s.swapcase()
return s
</code></pre>
<p>这个函数正是我想要的,测试输出“hOlA”。如果字符串在Python中是不可变的,为什么这样做呢?不变不意味着我不能改变它们吗?你知道吗</p>