После ввода всех необходимых значений python отказывается выполнять цикл while

#python #while-loop

#python #цикл while

Вопрос:

Я пишу код для класса, в котором я должен создать код, который аппроксимирует корень кубической функции между интервалом, используя деление пополам. Однако я написал код, в котором это должно быть предварительно сформировано; после ввода значений для переменных он предварительно формирует команду печати, затем прерывается и останавливается непосредственно перед командой while . Текстовый курсор переходит в новую строку, как будто я должен вводить больше информации, когда он должен выполнять цикл while() .

 import sys
print('The function should be in the format: Ax^3   Bx^2   Cx   D.  ')
A = float(input(' What is the value of A? '))
B = float(input(' What is the value of B? '))
C = float(input(' What is the value of C? '))
D = float(input(' What is the value of D? '))
a = float(input(' What is the value of the smallest x-value of your interval? '))
b = float(input(' What is the value of the largest x-value of your interval? '))
g = a > b
interval = (b - a) / 2
tolerance = 10 ** -6
print(interval)

if g:
    print('b must be larger than a'), sys.exit()

while interval > tolerance:
    iteration = 0
    p = (a   b) / 2
    f0p = A * (p ** 3)   B * (p ** 2)   C * p   D
    if f0p == 0:
        print('The root of the function is', p)
    else:
        if p < 0 and a > 0:
            b = p
        if p < 0 and b > 0:
            a = p
        if p > 0 and a < 0:
            b = p
        if p > 0 and b < 0:
            a = p
        iteration  = 1

print('The root is x=', p, ',calculated in', iteration, 'iterations.')
  

Я попытался изменить отступ, и я повсюду искал, почему цикл while отказывается выполняться, а текстовый курсор опускается на новую строку, как если бы он хотел больше ввода.

Ответ №1:

Он не ожидает дополнительного ввода. Вы никогда не изменяете значение интервала, поэтому условие цикла while всегда истинно, и цикл просто продолжается.

Ответ №2:

Ваш while цикл выполняется, он просто никогда не заканчивается

Комментарии:

1. почему он никогда не завершается? Он должен завершиться после того, как интервал будет меньше допуска.