Как я могу проверить, является ли символ в строке не буквой? - PullRequest
0 голосов
/ 27 октября 2018

Таким образом, код, который я пишу, предназначен для замены всех гласных на альтернативные буквы, а затем возвращает «Ошибка», если какой-либо символ в определенной строке не является буквой.Я получил первую часть, чтобы работать, но как я могу проверить не письмо?

def signature(name):
    names = name
    for n in name:
        if n == "a":
             names = names.replace(n,'b')
        if n == 'e':
             names = names.replace(n, 'f')
        if n == 'i':
             names = names.replace(n,'j')
        if n == 'o':
             names = names.replace(n, 'p')
        if n == 'u':
             names = names.replace(n,'v')

    return names

1 Ответ

0 голосов
/ 27 октября 2018

Как предполагает Павел, используйте isalpha, чтобы проверить, содержит ли строка только буквы:

assert name.isalpha()

Использование assert таким образом вызовет ошибку, если имя содержит не алфавитный символ.

Ваше преобразование гласных может быть упрощено:

def replace(c):
    if c in 'aeoui':
        return chr(ord(c) + 1)
    return c # return c if not a vowel

name = "".join([replace(c) for c in name])
  • Используйте ord, чтобы преобразовать символ в целое число
  • Увеличьте это на один
  • Используйте chr, чтобы построить символ обратно из целого числа
...