2015-09-23 3 views
-1

Я пытаюсь создать программу, которая позволяет мне вычислить х (I) = 1/я^2 для г = 1,2, ⋯, NКак я могу вычислить текущую сумму в Python?

Вот мой код до сих пор:

end = int(input("How many times do you want to calculate it?: ")) 

x = 0.0 

for i in range (0, end): 
    x = x + (1/end **2) 
print ("The sum is", x) 

Кажется, у меня проблема с добавлением разных значений X вместе.

Как мне это сделать, если мне нужно, чтобы он работал?

+4

ли вы имеете в виду 'х = + (1/i ** 2) '? – saulspatz

+0

Да, вот что я имею в виду :) – Pontius

ответ

1

Вы не используете Ваш уровень: i.

Вы также делите на ноль.

Try:

end = int(input("How many times do you want to calculate it?: ")) 

x = 0.0 

for i in range (1, end+1): 
    x = x + (1/(i**2)) 
print ("The sum is", x) 

Это должно обеспечить результат, который вы ищете. Наслаждайтесь!

+0

Для Python <3.0 это не будет работать так, как предполагалось. Вам нужно иметь 'float' при вычислении' x = x + (1/(i ** 2)) 'i.e.' x = x + (1./(i ** 2)) '. – areuexperienced

0

Даже в этом небольшом коде есть ряд вещей, которые нужно сделать лучше.

end = int(input("How many times do you want to calculate it?: ")) 
print(sum([1/i*2 for i in range(1, end+1)])) 

Используйте встроенные функции, такие как sum. Они - основная сила питона.

Будьте осторожны с range. Диапазоны начинаются с 0 по умолчанию, и вы не хотите делить на 0, конечно. Кроме того, я считаю, что вы хотите, чтобы end было последним значением i. В этом случае вы должны добавить 1 к end, чтобы включить его в диапазон.

Надеюсь, это поможет.

0

Учет деления на ноль проблем и с помощью функции суммы и список понимание (более компактный):

end = int(input("How many times do you want to calculate it?: ")) 
x = 0 
x = sum([x + (1.0/(i**2)) for i in range(1, end+1)]) 
print ("The sum is", x) 

Упор на 1,0, так что вы не разделив на 0

+0

Также в python вам не нужно указывать x = 0.0 для его создания, поскольку он может изменять типы и значения. Таким образом, вы должны убедиться, что при повторении вы добавляете правильно рассчитанные значения, а не только 1 каждый раз – russellkir

Смежные вопросы