как решить ошибку времени выполнения в случае смещения строки - PullRequest
0 голосов
/ 24 января 2020
def swap_case(s):
    for x in s:
        if (x.isupper())==True:
            x=(x.lower())
        else:
            x=(x.upper())
    return s

if __name__ == '__main__':
    s = input()
    result = swap_case(s)
    print(result)

Выше приведен мой код для изменения регистра входной строки. Например, если я введу «Python», то мой вывод должен быть «pYTHON»

Ответы [ 3 ]

1 голос
/ 24 января 2020

Первое, что нужно Строки неизменны в python

Таким образом, вы не можете изменять буквы в элементах, подобных string, в list

Создать пустое str и добавьте в него новые элементы, как показано ниже (с использованием операции увеличения и назначения +=)

def swap_case(s):
    new_s = ""
    for i in s:
         if i.isupper():
             new_s += i.lower()
         else:
             new_s += i.upper()
    return new_s

if __name__ == '__main__':
    s = input()
    result = swap_case(s)
    print(result)
0 голосов
/ 24 января 2020

Это вам поможет.

def swap_case(s):
s_new=''
for x in s:
    if x.isupper():
        x = x.lower()
    else:
        x = x.upper()
    s_new = s_new + x
return s_new

s = input ('Введите слово:') result = swap_case (s) print (result)

0 голосов
/ 24 января 2020

Используя понимание списка ,

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

ИЛИ вы можете использовать встроенную функцию swapcase

s.swpacase()

Выход

pYTHON

...