Задать вопрос

Как с помощью def сократить код в python?

Мы просим у пользователя ввести три числа для нахождение дискриминанта,как это все сделать через def, чтобы строк кода стало меньше?

import cmath

a = int(input("Введите число a: "))
b = int(input("Введите число b: "))
c = int(input("Введите число c: "))

D = b*b-4*a*c

if D > 0:
  x1 = (-b-cmath.sqrt(D))/(2*a)
  x2 = (-b+cmath.sqrt(D))/(2*a)
  print(x1,x2)
elif D == 0:
  x = -b/(2*a)
  print(x)
else:
  print("Корней нет")
  • Вопрос задан
  • 210 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 3
Lord_of_Rings
@Lord_of_Rings
Дунадан - северный странник. Злой, но очень добрый
Здесь не def нужен, здесь вообще ничего не нужно
Ответ написан
Dr_Elvis
@Dr_Elvis Куратор тега Python
В гугле забанен
def - это зарезервированное слово которое обозначает что дальше будет идти функция. выражение "Как с помощью def сократить код в python?" по сути не имеет смысла.
У вас достаточно простая программа, если цель только решить квадратное уравнение - то и так всё хорошо для начала.
Если вам нужно именно функцию, то просто оберните это всё в в функцию:
def foo():
    a = int(input("Введите число a: "))
    b = int(input("Введите число b: "))
    c = int(input("Введите число c: "))
    
    D = b*b-4*a*c
    
    if D > 0:
        x1 = (-b-cmath.sqrt(D))/(2*a)
        x2 = (-b+cmath.sqrt(D))/(2*a)
        print(x1,x2)
    elif D == 0:
        x = -b/(2*a)
        print(x)
    else:
        print("Корней нет")

P.S.: сюда наоборот нужно больше строчек, например проверку что ввели именно число, а не буквы. И возводить в степень принято так b ** 2
Ответ написан
Комментировать
otdameskapizm
@otdameskapizm
Помог ответ? Отметь решением...
Никак
Можно, конечно, написать функцию, которая будет у вас принимать ваши коэффициенты для расчета, но это вам ничего не сократит
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект