2016-06-06 3 views
0

sehr neu Programmierung im Allgemeinen, so verzeihen Sie mir für meine Ignoranz. Ich versuche, eine Funktion in jython zu schreiben, die eine Eingabe (Name) nimmt, jedem Buchstaben einen Wert (1-26) zuweist, sie dann summiert und den Wert ausgibt. Bisher habe ich:Summierung numerische Ausgabe von der Eingabe des Wortes in 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 

Dies erzeugt eine Liste der einzelnen Werte, aber ich kann nicht herausfinden, wie sie zusammen fügen. Irgendwelche Tipps würden sehr geschätzt werden. Danke vielmals!

+0

Gibt es einen Grund, warum Sie eine Liste verwenden? Sie könnten einfach 'output = 0'' output + = number' eingeben. –

Antwort

0

Für Ihren Code ändern Sie print output zu print sum(output). Sie drucken nur eine Liste. Liste bietet eine In-Build-Option zum Auffinden der Summe.

Hier ist eine alternative Lösung in pythonischer Weise.

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

Wenn der Name Leerzeichen die obige Lösung mit macht Probleme, so dass ich die Räume mit join und split entfernt.

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

können Sie einfachen Integer-Variable verwenden, und es erhöhen:

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