如何检查字符串中的字符是否为非字母?

时间:2018-10-27 00:40:22

标签: python python-2.7 char letter

因此,我正在编写的代码旨在将所有元音替换为替代字母,然后如果特定字符串中的任何字符为非字母,则返回“错误”。我有第一部分可以工作,但是如何检查非字母?

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 :(得分:2)

按照Paul的建议,使用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从整数重新构建一个字符