Python字符串-字符串的不变性


问题内容

我想知道,如果Python字符串是不可变的,那么这段代码为什么起作用以及如何起作用。

a = input()
for i in a:
    if i.isupper():
        print(i.lower(), end='')
    else:
        print(i.upper(), end='')

这将更改字符串中的字符。在我知道字符串是不可变的之前,我曾经将其转换为列表,然后对其进行更改并将其重新连接回字符串。现在,我认为我当时写的所有代码都是毫无用处的。


问题答案:

Python中的字符串是不可变的,这意味着一旦将字符串变量分配给字符串(例如a ='Hello'),就不能像列表对象一样更改字符串的内容。在上面的代码中,您可以转换字符串而不更改字符串变量的内容。

a=input()
for i in a:
    if i.isupper():
        print (i.lower(),end='')
    else:
    print (i.upper(),end='')
print(a)

如果运行此代码,您将看到a的值与您输入的相同。字符串方法lower()和upper()仅返回字符串的副本。