首页 > 解决方案 > 计算词的质量算法

问题描述

我必须编写一个函数,只接收一个大写的单词并根据元音计算它的质量,问题是这样的;“元音根据它们在字母表中的位置排列,因此 A=1、E=5、I=15 等等,如果元音存在于我的单词中,那么我们就按照它的范围*它在单词中的位置来查找质量.我的尝试:

    ch=input()
def poids(word):
    poids=0
    alpha="ABCDEFGHIJKLMNOPQRSTUVXYZ"
    voy=["A","E","I","O","U","Y"]
    for i in range(len(alpha)):
        p=0
        p1=0
        for j in voy:
            if alpha[i]==j:
                p=alpha.find(j)+1
        print("p=",p)        
        for k in range(len(ch)):
             for m in voy:
                 if ch[k]==m:
                     p1=ch.find(m)
                 
             poids=p*p1
                     
    return poids
print(poids(ch))

标签: pythonpython-3.x

解决方案


我会这样做。请试一试。

import string

alphas = string.ascii_uppercase
lookup =  {char: idx for idx, char in enumerate(alphas, 1)} # a dictionary 

print(alphas)  # can comment out later
print(lookup)  # can comment out

def poids(word):
    weight = 0
    vowels = 'AEIOU'

    for char in word:
        if char in vowels:
            weight += lookup[char]
        else:
            continue
    
    return weight


if __name__ == '__main__':
    word  = input('type a word: ')
    print(poids(word))

推荐阅读