Как мне заставить Python давать правильные решения для функции и изменять формат нулей в зависимости от знака?Python

Программы на Python
Anonymous
Как мне заставить Python давать правильные решения для функции и изменять формат нулей в зависимости от знака?

Сообщение Anonymous »

Я пытаюсь создать калькулятор квадратичных формул. Кажется, все в порядке, однако, когда я добавляю некоторые функции, такие как x^2-2x+1 и x^2+2x+1, они дают мне одинаковые нули, когда они имеют разные решения. Еще одна проблема, с которой я столкнулся, заключается в том, что в конце кода, format_solution(root), я хочу, чтобы он менял формат в зависимости от знака. Например, если ноль равен (x - 1), я не хочу, чтобы он ставил (x + -1), а вместо этого просто (x - 1); Я не могу понять, как это сделать.

Код: Выделить всё

import math
import cmath

print('Follow this format: Ax^2 + Bx + C')

a = float(input('Enter A: '))
b = float(input('Enter B: '))
c = float(input('Enter C: '))

#Functions

def qfpositive(a, b, c):
return(-abs(b)+cmath.sqrt(b**2-4*a*c))/2*a

def qfnegative(a, b, c):
return(-abs(b)-cmath.sqrt(b**2-4*a*c))/2*a

def format_solution(root):
if root.real == 0:

return f'(x {root.real})'
# Root is a real number
if root.real > 0:
return f'(x + {root.real})'
elif root.real < 0:
return f'(x {root.real})'
elif root.imag > 0:
# Root has a positive imaginary part
return f'(x {root.real} + {root.imag}i)'
else:
# Root has a negative imaginary part
return f'(x {root.real} - {abs(root.imag)}i)

x1 = qfpositive(a, b, c)
x2 = qfnegative(a, b, c)

print(format_solution(x1))
print(format_solution(x2))
Я попытался вставить следующий код

Код: Выделить всё

if root.real > 0:
return f'(x + {root.real})'
elif root.real < 0:
return f'(x {root.real})'
Таким образом, если формат нуля положительный, выводится (x + #). Если бы формат нуля был отрицательным, я бы получил (x - #), а не (x + -#).

Подробнее здесь: https://stackoverflow.com/questions/787 ... ange-the-f

Вернуться в «Python»