#python
Вопрос:
Например, если бы у меня было 3456789, я бы хотел, чтобы сумма равнялась = (3×1) (4×2) (5×3) (6×4) (7×5) и т.д.
Ответ №1:
Вы можете использовать enumerate для получения индекса вместе с каждым символом и функцию sum для суммирования продуктов:
sum(int(digit)*pos for pos,digit in enumerate("3456789",1)) # 196
Комментарии:
1. круто, я использовал python в течение многих лет и понятия не имел, что вы можете компенсировать индекс
enumerate()
Ответ №2:
Вот несколько подсказок без прямого ответа на ваш вопрос, так как это похоже на домашнее задание:
Как перебирать символы в строке
for i, c in enumerate(your_string):
print("pos %d is char %s" % (i, c))
Как преобразовать строку, представляющую целое число, в целое число
x_str = '1'
x_int = int(x_str)
Как вычислить сумму функции, вызываемой для элементов в массиве (или другой итерационной):
Этот код вычисляет сумму каждого значения в квадрате:
elems = [ 10, 15, 20, 25 ]
value = 0
for index, elem in enumerate(elems):
value = elem * elem
print("Sum of products of %s is: %d" % (elems, value))
В качестве альтернативы вы можете сделать это:
value = sum(map(lambda x: x*x, elems))