因此,我正在编写的代码旨在将所有元音替换为替代字母,然后如果特定字符串中的任何字符为非字母,则返回“错误”。我有第一部分可以工作,但是如何检查非字母?
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
答案 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
从整数重新构建一个字符