2016-06-06 2 views
0

очень новое для программирования в целом, поэтому простите меня за мое невежество. Я пытаюсь написать функцию в jython, которая принимает вход (имя), присваивает каждой букве значение (1-26), затем суммирует их и печатает значение. До сих пор у меня есть:суммирование числового выхода из ввода слова в 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 

Это создает список отдельных значений, но я не могу понять, как добавить их вместе. Любые советы будут очень признательны. Большое спасибо!

+0

Есть причина, почему вы используете список? Вы могли бы просто сделать 'output = 0'' output + = number'. –

ответ

0

Для смены кода print output - print sum(output). Вы печатаете только список. В списке содержится опция для построения суммы.

альтернативное решение pythonic.

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

Если имя, имеющее пространства вышеуказанного раствор составляет проблемы, так что я удалил пространство с join и 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

Вы можете использовать простую целочисленную переменную и увеличить его:

output = 0 
for character in name: 
    number = ord(character) - 96 
    output += number 
print output 
Смежные вопросы