Jamie Schwiderski - 2 months ago 5
Python Question

# Calculating the sum of a series?

This is my assignment and for the life of me i cant seem to think of a way to do it. This is the code I have so far:

``````sum = 0
k = 1
while k <= 0.0001:
if k % 2 == 1:
sum = sum + 1.0/k
else:
sum = sum - 1.0/k
k = k + 1
print()
``````

This is my assignment :

Create a python program named sumseries.py that does the following:
description of what the program does.

Write a program to calculate and display the sum of the series:

1 - 1/2 + 1/3 - 1/4 + ...

until a term is reached that is less than 0.0001.

The answer with 10,000 iterations appears to be 0.6930971830599583

I ran the program with 1,000,000,000 (billion) iterations and came up with a number of 0.6931471810606472. I need to create a loop to programmably create the series.

Actually, you could write this shorter:

``````Answer = sum(1.0 / k if k % 2 else -1.0 / k for k in range(1, 10001))
``````

### What this code does:

• the innermost part is a generator expression, which computes the elements of a series 'on the fly'
• `1.0 / k if k % 2 else -1.0 / k` results in `1.0 / k` if `k` is odd and `-1.0 / k` otherwise (`a - b` is the same as `a + (-b)`)
• `for k in range(1, 10001)` goes through all `k`s in range from 1 (included) to 10001 (excluded)
• `sum` can compute the sum of any sequence (any iterable, to be precise), be it a list, a tuple, or a generator expression
Source (Stackoverflow)