2016-06-06 2 views
0

très nouveau à la programmation en général, alors pardonnez-moi pour mon ignorance. J'essaye d'écrire une fonction dans jython qui prend une entrée (nom), assigne à chaque lettre une valeur (1-26), puis les somme et imprime la valeur. Jusqu'à présent, j'ai:sommation sortie numérique de l'entrée de mot en python/jython

def enterName(): 
    input = raw_input('Enter your name: ') 
    input = input.lower() 
    output = [] 
    for character in input: 
     number = ord(character) - 96 
     output.append(number) 
    print output 

Cela génère une liste des valeurs individuelles, mais je ne peux pas comprendre comment les ajouter ensemble. Tous les conseils seraient grandement appréciés. Merci beaucoup!

+0

Y at-il une raison pour laquelle vous utilisez une liste? Vous pouvez simplement faire 'output = 0'' sortie + = nombre'. –

Répondre

0

Pour votre changement de code print output à print sum(output). Vous imprimez une liste uniquement. La liste fournit une option de construction pour trouver la somme.

Voici une solution alternative de manière pythonique.

In [1]: sum([ord(i.lower()) - 96 for i in raw_input('Enter your name: ')]) 
Enter your name: Rahul 
Out[1]: 60 

Si le nom ayant des espaces de la solution ci-dessus fait des problèmes alors j'ai enlevé les espaces avec join et split.

In [2]: sum([ord(i.lower()) - 96 for i in ''.join(raw_input('Enter your name: ').split())]) 
Enter your name: Rahul K P 
Out[2]: 87 
0

Vous pouvez utiliser simple variable entier et l'augmenter:

output = 0 
for character in name: 
    number = ord(character) - 96 
    output += number 
print output