Подбор значений аргумента в линейной функции
Имеется стандартная функция y=a*x+b. Имеются фиксированные значения коэффициентов a и b, изменяться должно только значение аргумента x+=1. В моем понимании для начала нужно установить функцию, определить значения аргументов и с помощью цикла while начать перебирать значение x, увеличивая его на +1.
def y():
global x
x=1
a=2
b=4
return a*x+b
while y()<=100:
print("значение аргумента x = ", x,"значение функции y = ", y())
x+=1
Результат выглядит следующим образом:
значение аргумента x = 1 значение функции y = 6
значение аргумента x = 1 значение функции y = 6
Process finished with exit code -1
В чем заключается ошибка? как изменить бесконечный цикл так чтобы значения x всё таки перебирались, пока y не достигнет 100
Ответы (1 шт):
Быстрая правка — используйте x как параметр функции:
def y(x):
a = 2
b = 4
return a * x + b
x = 1
while y(x) <= 100:
print("значение аргумента x = ", x,"значение функции y = ", y(x))
x += 1
Лучшее решение (изменение только второй части):
def y(x):
a = 2
b = 4
return a * x + b
for x in range(1, 101):
print(f"значение аргумента x = {x:3}, значение функции y = {y(x):3}")
Число 3 за двоеточием в последней команде выделяет число позиций для выведенного числа, в рамках которых оно будет выровнено вправо (для красивого вывода):
значение аргумента x = 1, значение функции y = 6 значение аргумента x = 2, значение функции y = 8 значение аргумента x = 3, значение функции y = 10 ................ ................ значение аргумента x = 98, значение функции y = 200 значение аргумента x = 99, значение функции y = 202 значение аргумента x = 100, значение функции y = 204