Сбой питона, когда я использую (0) в моих кодах в качестве num1 для уравнения - PullRequest
0 голосов
/ 07 ноября 2019
import cmath
import math


print(" we are going to programming second grade equation in python")
print(" a^2 x + b x + c =0")

num1 = int(input(" enter A please : "))
num2 = int(input(" enter B please : "))
num3 = int(input(" enter c please : "))

v = num2*num2 - 4 *num1 * num3

if v < 0:
    print("wrong values")

else:
    print("root of delta =", v)
    k= math.sqrt(v)

def two_sol(x,y) :
    x_f= (-y + v)/(4*x)
    x_s =(-y - v)/(4*x)

    return x_f , x_s

def one_sol(x):
    x_f = (-y + v) / (4 * x)

if v >0 :
    print("we have two solution :" ,two_sol(num1,num2)) 

elif v == 0:
   print( "we have one solution :" , one_sol(y))

else:
    print(" there is no solution !!")

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Это происходит потому, что мы не можем разделить любое число на 0, так что ты не хочешь делать? если вы хотите, когда x input принимает 0, он заменяется на 1, что означает, что число делится на 1, код будет

def two_sol(x,y) :
    if int(x) == 0: x = 1 
    x_f= (-y + v)/(4*x)
    x_s =(-y - v)/(4*x)

    return x_f , x_s

def one_sol(x):
     if int(x) == 0: x = 1 
     x_f = (-y + v) / (4 * x)

, если вы хотите, когда x input принимает 0, он возвращает ине рассчитывай больше! код будет,

    def two_sol(x,y) :
    if int(x) == 0: return 
    x_f= (-y + v)/(4*x)
    x_s =(-y - v)/(4*x)

    return x_f , x_s

def one_sol(x):
     if int(x) == 0: return 
     x_f = (-y + v) / (4 * x)
0 голосов
/ 07 ноября 2019

Конечно, у вас есть ошибка деления на ноль: num1 -> x

def two_sol(x,y) :
    x_f= (-y + v)/(4*x)
    x_s =(-y - v)/(4*x)

и

def one_sol(x):
    x_f = (-y + v) / (4 * x)

Необходимо проверить, равен ли ноль x. Если x равен нулю, должно быть только одно решение.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...