替换字母的值并将其加起来

时间:2019-02-12 19:20:46

标签: python

我正在尝试将不同的字母替换为一个值:元音为1; “ b”,“ g”,“ r”或“ x”为3,其余字母等于5(这是每个字符)。

我尝试使用convert_text和sum,但是都没有用。另外,如果有一种简单的“休息”方式(所有字符-元音-点),将不胜感激!

我是新来的,所以谢谢您的帮助!

convert_text = input("Enter a string: ")
vowel= "a" or "e" or "i" or "o" or "u"
points= "b" or "g" or "r" or "x"
rest= ¡ "c" or "d" "f" or "h" or "j" or "k" or "l" or "m" or "n" or "p" or "q" or "t" or "s" or "u"or "v" or "w" or"y" or "z"

replacements= {vowel:1, points:3, rest:5}

converted_text = input.sub('(\d+)', lambda m: replacements[m.group()], sentence)

print(converted_text)

例如,“ hello”将转换为17或“溢出”转换为26。再次感谢!!

2 个答案:

答案 0 :(得分:3)

一种方法:

score = 0
for c in convert_text:
    if c in ['a', 'e', 'i', 'o', 'u']:
        score += 1
    elif c in ['b', 'g', 'r', 'x']:
        score += 3
    else:
        score += 5
print(score)

答案 1 :(得分:2)

尝试在函数中对得分逻辑进行编码,如下所示:

def score(letter):
    if letter in ('a', 'e', 'i', 'o', 'u'):
        return 1
    if letter in ('b', 'g', 'r', 'x'):
        return 3
    return 5

然后,您可以将其与sum结合起来进行计算,如下所示:

convert_text = input("Enter a string: ")
sum(score(letter) for letter in convert_text)

例如:

>>> convert_text = input("Enter a string: ")
Enter a string: 'asdf'
>>> sum(score(letter) for letter in convert_text)
16

(为完整起见,您可能需要对非字母字符(例如数字,空格和标点符号)进行一些处理。)