Input 如何在循环交换所有小写字母时创建。字符串到大写字母,反之亦然? def swap_案例(字符串): pos=0 当pos

Input 如何在循环交换所有小写字母时创建。字符串到大写字母,反之亦然? def swap_案例(字符串): pos=0 当pos,input,while-loop,swap,uppercase,lowercase,Input,While Loop,Swap,Uppercase,Lowercase,这就是我所尝试的,但是它只转换第一个字母,而不转换输入字符串中的其他字母,任何人都可以帮助我理解如何正确编写此代码。我是初学者。代码中的错误在于return语句在第一次迭代后太快,这就是为什么只返回第一个字母 例如,不鼓励将“string”用作变量,因为它是保留字 def swap_case(string): pos = 0 while pos < len(string): if string[pos].isupper(): retu

这就是我所尝试的,但是它只转换第一个字母,而不转换输入字符串中的其他字母,任何人都可以帮助我理解如何正确编写此代码。我是初学者。

代码中的错误在于
return
语句在第一次迭代后太快,这就是为什么只返回第一个字母

例如,不鼓励将“string”用作变量,因为它是保留字

def swap_case(string):
    pos = 0
    while pos < len(string):
        if string[pos].isupper():
            return string[pos].lower()
        else:
            return string[pos].upper()
        pos = pos + 1

print(swap_case('Hello'))
我还将字符串s转换为一个列表
['H','e','l','l','o']
,这样每个字母都可以迭代以检查/更改大小写

最后,可以使用
''返回转换后的列表。join(s)

另一种方法是使用列表理解,输出与上面相同

hELLO

嘿,
return
立即退出该函数。如果要更改字符串中的字符,需要将赋值用作
string[pos]=string[pos].lower()
def swap_case(s):
    pos = 0
    s = list(s)
    while pos < len(s):
        if s[pos].isupper():
            s[pos] = s[pos].lower()
        else:
            s[pos] = s[pos].upper()
        pos = pos + 1
    return ''.join(s)

print(swap_case('Hello'))
hELLO
def swap_case(s):
    return ''.join([x.lower() if x.isupper() else x.upper() for x in list(s)])

print(swap_case('Hello'))