Всегда помните, что функция sum () принимает список значений (итеративный).В вашем случае вы просто пропускаете поплавок.Небольшую помощь по его использованию можно получить из интерактивного терминала Python следующим образом.
Rishikeshs-MacBook-Air:Try hygull$ python3
Python 3.6.7 (v3.6.7:6ec5cf24b7, Oct 20 2018, 03:02:14)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> help(sum)
Help on built-in function sum in module builtins:
sum(iterable, start=0, /)
Return the sum of a 'start' value (default: 0) plus an iterable of numbers
When the iterable is empty, return the start value.
This function is intended specifically for use with numeric values and may
reject non-numeric types.
Теперь вы можете попробовать вот так.
Using sum()
range_list = range(1, 97)
values = []
for p in range_list:
p_numerator = 4*((-1)**(p+1))
p_denominator = 2*p - 1
function_ofK = float(p_numerator)/float(p_denominator)
values.append(function_ofK)
total = sum(values)
print(total) # 3.131176269454982
Without using sum()
range_list = range(1, 97)
total = 0
for p in range_list:
p_numerator = 4*((-1)**(p+1))
p_denominator = 2*p - 1
function_ofK = float(p_numerator)/float(p_denominator)
total += function_ofK
print(total) # 3.131176269454982
You should try
def get_sum(start, end):
range_list = range(start, end + 1)
total = 0
for p in range_list:
p_numerator = 4*((-1)**(p+1))
p_denominator = 2*p - 1
function_ofK = float(p_numerator) / float(p_denominator)
total += function_ofK
return total
Теперь вы просто вызываете эту функцию и получаетеваша работа выполнена.
total = get_sum(1, 96)
print(total) # 3.131176269454982
total = get_sum(1, 100)
print(total) # 3.1315929035585537