Работа цикла while в работе

Имеется код

print("Введите исходные данные")
print("x0 = ", end='')
x0 = float(input())
print("hx = ", end='')
hx = float(input())
print("xn = ", end='')
xn = float(input())

print("Вы ввели:")
print("x0 = %.1f  xs = %.1f  x2 = %.31f" % (x0, hx , xn))
x = x0
y = 0
n=int(1)
round(n)
while x <= xn + hx/2:
    if x >= -2 and x <= -1:
       y = (2*x + 4)
    elif x > -1 and x <= 1:
       y = (x**2)*2
    elif x > 1 and x <= 2:
       y = -2*x + 2
    else:
       y = ("Error")


print("x = %.1f  y = %.1f" % (x,y))
x += hx

И почему-то он не работает так,как нужно.Объясните пожалуйста дураку,в чем дело.


Ответы (1 шт):

Автор решения: Igor

Как сейчас говорят в России: "Отступы в Питоне - такие отступы."

print("Введите исходные данные")
print("x0 = ", end='')
x0 = float(input())
print("xs = ", end='')
xs = float(input())
print("x2 = ", end='')
x2 = float(input())
print("Вы ввели:")
print("x0 = %.1f  xs = %.1f  x2 = %.31f" % (x0, xs, x2))
x = x0
y = 0
while x <= x2 + xs / 2:
    if x >= -2 and x <= -1:
        y = (2*x + 4)
    elif x > -1 and x <= 1:
        y = (x**2)*2
    elif x > 1 and x <= 2:
        y = -2*x + 2
    elif x < -2 or x > 2:
        y = ("Error")
    print("x = ", x, "y = ", y)
    x += xs

Входные данные:

-3
0.25
3

Выходные данные:

x =  -3.0 y =  Error                                                                                                    
x =  -2.75 y =  Error                                                                                                   
x =  -2.5 y =  Error                                                                                                    
x =  -2.25 y =  Error                                                                                                   
x =  -2.0 y =  0.0                                                                                                      
x =  -1.75 y =  0.5                                                                                                     
x =  -1.5 y =  1.0                                                                                                      
x =  -1.25 y =  1.5                                                                                                     
x =  -1.0 y =  2.0                                                                                                      
x =  -0.75 y =  1.125                                                                                                   
x =  -0.5 y =  0.5 
x =  -0.25 y =  0.125                                                                                                   
x =  0.0 y =  0.0                                                                                                       
x =  0.25 y =  0.125                                                                                                    
x =  0.5 y =  0.5                                                                                                       
x =  0.75 y =  1.125                                                                                                    
x =  1.0 y =  2.0                                                                                                       
x =  1.25 y =  -0.5                                                                                                     
x =  1.5 y =  -1.0                                                                                                      
x =  1.75 y =  -1.5                                                                                                     
x =  2.0 y =  -2.0                                                                                                      
x =  2.25 y =  Error                                                                                                    
x =  2.5 y =  Error                                                                                                     
x =  2.75 y =  Error                                                                                                    
x =  3.0 y =  Error  
→ Ссылка