Arithmetic/Geometric series calculator
find_an() looks like an internal function, used by arithmetic_partial_sum().  If it is not for external use, it should be named with a leading underscore, to suggest it is private.



arithmetic_partial_sum() appears to handle only integer values, yet it return a floating-point value (1275.0 in the built-in example).  It should return an integer, since it is adding up integers.  Use the Python3.x integer-division operator: //.

    n = 1 + (an - a1) // d
    S = n * (a1 + an) // 2


Or, not assume the terms are integer, and use float(...) instead.



geometric_partial_sum() fails if the first 2 values are not  int values:

&gt;&gt;&gt; geometric_partial_sum(f"1+{1/3}+{1/9}+{1/27}+{1/81}")
Traceback (most recent call last):
  File "&lt;pyshell#1&gt;", line 1, in &lt;module&gt;
    geometric_partial_sum(f"1+{1/3}+{1/9}+{1/27}+{1/81}")
  File "...\partial_sum.py", line 63, in geometric_partial_sum
    r = int(series[1]) / a1
ValueError: invalid literal for int() with base 10: '0.3333333333333333'


You should convert the terms to floating-point values, not integers:

    a1 = float(series[0])
    r = float(series[1]) / a1




find_an() assumes \$a_n\$ is immediately after the '.' term, so will fail with:

arithmetic_partial_sum("3+7+11+15+.+95+99")
arithmetic_partial_sum("3+7+11+15+19")


Why not just retrieve the last term?

def find_an(parsed_series):
    return int(parsed_series[-1])


Now the following all succeed and return the correct values

arithmetic_partial_sum("3+7+11+15+.+95+99")
arithmetic_partial_sum("3+7+11+15+...+95+99")
arithmetic_partial_sum("3+7+11+15+19")




The """docstrings""" for arithmetic_partial_sum() and geometric_partial_sum() appear unhelpful.  For example:

&gt;&gt;&gt; help(arithmetic_partial_sum)
Help on function arithmetic_partial_sum in module __main__:

arithmetic_partial_sum(series)
    Returns the partial sum of an arithmetic series

    Formula:
        S = n( (a1 + an) / 2 )

    Find an:
        an = a1 + (n - 1)d

    Find n:
        n = 1 + ( (an - a1) / d )

    :param series: Arithmetic series to solve


The function is not returning an or n.  Even the formula is not particularly helpful.  """docstrings""" should tell a user how to use the function.  For example (adding Python 3.6 type hints as well):

def arithmetic_partial_sum(series:str) -&gt; int:
    """
    Returns the sum of an arithmetic series

    Example:
        s = arithmetic_partial_sum("1+3+5+.+99")  # returns 2500

    :param series: A string representing the arithmetic series to solve
    """


Now type help(arithmetic_partial_sum):

&gt;&gt;&gt; help(arithmetic_partial_sum)
Help on function arithmetic_partial_sum in module __main__:

arithmetic_partial_sum(series: str) -&gt; int
    Returns the sum of an arithmetic series

    Example:
        s = arithmetic_partial_sum("1+3+5+.+99")  # returns 2500

    :param series: A string representing the arithmetic series to solve


The user is told the function takes a string and returns an integer.  The format of the string should be clear from the example.