#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. почему он никогда не завершается? Он должен завершиться после того, как интервал будет меньше допуска.