Как мне заставить 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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