Исключить вводимый текст, кроме буквенного в python - PullRequest
1 голос
/ 09 июля 2020

Создайте функцию caseSophia с аргументом txt (тип строки), эта функция будет:

  • Обмен нижнего регистра на верхний
  • Заменять верхний регистр на нижний
  • другие символы, кроме алфавитных, будут удалены из этой функции caseSophia.
  • Тип этого вывода: string.

Это мой код:

def caseShopia(txt):
    pass

Функция Run / Invoke:

print(caseShopia('thXGth876%^$LMn.'))

Ожидаемый результат:

THxgTHlmN

Ответы [ 3 ]

2 голосов
/ 09 июля 2020

Попробуйте следующее:

def caseShopia(txt):
    return ''.join(c.swapcase() for c in txt if c.isalpha())
    

Объяснение:

  1. Используется python понимание
c.swapcase() for c in txt if c.isalpha()
Вы фильтруете только буквенные символы
if c.isalpha()
Вы конвертируете в нижний регистр, если символ в верхнем регистре, и наоборот
c.swapcase()
Если вы обработали эту строку, вы объедините ее в новую строку.
''.join(...)

Надеюсь, это вам поможет. Поскольку вы новичок в Python, у вас могут возникнуть проблемы с пониманием понимания, поэтому в этом коде используется для l oop:

def caseShopia(txt):
    s = ''
    for c in txt:
        if c.isalpha():
            s += c.swapcase()
    return s
1 голос
/ 09 июля 2020

Вы можете использовать методы islower () и isupper (), чтобы проверить, является ли символ нижним или верхним регистром соответственно, а затем преобразовать символ нижнего регистра в символ верхнего регистра и наоборот, используя upper () и lower (). Пример кода: -

def caseShopia(txt):
    output = []
    for letter in txt:
        if letter.islower():
            output.append(letter.upper())
        elif letter.isupper():
            output.append(letter.lower())
    return ''.join(output)

Здесь мы создаем список, а затем присоединяемся к нему, чтобы сформировать строку и вернуть строку.

0 голосов
/ 09 июля 2020

Вы можете l oop через вашу строку и проверить, является ли символ алфавитом или нет, используя функцию char.isalpha (). Затем во внутреннем if проверьте, является ли символ прописным, затем преобразуйте его в нижний и наоборот, используя функции char.lower () и char.upper ().

def caseShopia(x):
    s = ''
    for i in range(len(x)):
        if x[i].isalpha():
            if (x[i].isupper()) == True:
                s += x[i].lower()
            else:
                s += x[i].upper()
    return s

print(caseShopia('thXGth876%^$LMn.'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...