Ввожу точность,и программа останавливается
Типичная математическая лабораторная для начального курса

Код написал,отладку завершил но возникла проблема при работе с программой.
После ввода с клавиатуры точность e, программа просто останавливается,как видно на скриншоте. Я подумал,что может долго считает(а вдруг?),но ничего так и не произошло.
Сам код программы вот:
numb1=1.0;
kk=1;
sum=0.0;
print("Введите точность e")
ee=float(input())
while math.fabs(numb1)>ee:
sum+=numb1
numb1=1/(math.pow(kk+1,2))
print("Сумма чисел ряда равна = ", sum)
Точность у меня ee и ввожу я её через float(input()),далее цикл с условием "пока элемент ряда больше точности" выполнять.
Ответы (2 шт):
Самая часто используемая функция любого программиста - print(). Она позволяет видеть значение неполных переменных. И если добавить в цикл print(numb1), то станет видно, что numb1 совсем не изменяется и всегда равно 0.25. После этого уже можно искать причину. А причина в том, что не изменяется значение kk, на основе которого вычисляется numb1 (
1/(math.pow(kk+1,2)), где kk всегда 1, т.е. numb1 всегда равно 1/4).
Короче, добавь в цикл kk = kk + 1 и в не стесняйся использовать print(), если что-то идёт не так.
Вы не увеличиваете значение kk
numb1=1.0;
kk=1;
sum=0.0;
print("Введите точность e")
ee=float(input())
while math.fabs(numb1)>ee:
sum+=numb1
numb1=1/(math.pow(kk+1,2))
kk += 1
print("Сумма чисел ряда равна = ", sum)
я переписал бы ваш код так:
k = 1
sum_ = 0
e = float(input("Введите точность e: "))
while True:
n = 1 / (k * k)
sum_ += n
k += 1
if abs(n) < e:
break
print("Сумма чисел ряда равна = ", sum_)
при желании можете увеличить точность с помощью Decimal
import decimal
k = decimal.Decimal(1)
sum_ = 0
e = float(input("Введите точность e: "))
while True:
n = 1 / (k * k)
sum_ += n
k += 1
if abs(n) < e:
break
print("Сумма чисел ряда равна = ", sum_)
