I'm trying to make Bhaskara in Python and even with the if highlighted the programming says that I can not transform a complex into float

1
a = float(input("A = "))
b = float(input("B = "))
c = float(input("C = "))
delta = float(b**2-4*a*c)
raiz = (delta ** 0.5)
if raiz is float or int:
    raiz = float(delta ** 0.5)
    x1 = float((-b + raiz) / (a * 2))
    x2 = float((-b - raiz) / (a * 2))
    if x1 == x2:
        print("O resultado é %f" % x1)
    else:
        resultado = (x1, x2)
        print("O resultado é ou %f ou %f" % resultado)
else:
    print("Não há raízes reais. Delta é %s" %delta)
    
asked by anonymous 21.12.2018 / 20:40

1 answer

0

Well I managed to do it differently:

import math

# Recebendo dados
a = float(input('Digite o valor de a: '))
b = float(input('\nDigite o valor de b: '))
c = float(input('\nDigite o valor de c: '))

# Calculando o delta separadamente
delta = float(b**2 - (4*a*c))

# Calculando a raiz após obter o delta
if b < 0:
    raiz = delta * 1.5
else:
    raiz = math.sqrt(delta)

# Calculando o resto da equação após receber a raiz
if (raiz > 0) or (raiz == 0):
    x1 = (-b + raiz) / (2*a)
    x2 = (-b - raiz) / (2*a)
    if x1 == x2:  # Condicional para saber se o resultado será duas raizes iguais
        print('\nS = ', x1)  # se for igual mostrará apenas um número
    else:
        print('\nS = { %d , %d }' % (x1, x2))  # se for diferente significa que são duas raizes diferentes
else:
    print(f'\nO delta {delta} não tem raiz, pois é menor que 0 !')  # o caso se o delta for menor que 0
    
23.12.2018 / 17:31