Найти - Пользователи
Полная версия: Помогите пожалуйста с простой задачкой.
Начало » Python для новичков » Помогите пожалуйста с простой задачкой.
1 2 3 4
Astal
В общем смысл такой: начал изучать питон по электронному учебнику. В конце темы было задание:
Измените программу вычисления корней квадратного уравнения так,
чтобы пользователь сам мог вводить коэффициенты a, b и c.

До упражнения программа выглядела так:
def PrintRoots(a, b, c):
    D = b**2 - 4 * a * c
    if D < 0:
    return None, None
    import math
    x1 = (-b + math.sqrt(D)) / 2 * a
    x2 = (-b - math.sqrt(D)) / 2 * a
    return x1, x2


Пробовал дописать перед вызовом функции PrintRoots ввод переменных а, b, c
a = float(input("a= "))
b = float(input("b= "))
c = float(input("c= "))

а после этого вызвать функцию PrintRoots(a,b,c) выдает ошибку

После этого решил обойтись без функции. Последний вариант кода такой.
a = float(input("a= "))
b = float(input("b= "))
c = float(input("c= "))
D = b**2 - 4*a*c
if D < 0:
   print("None")
if D > 0:
   import math
   x1 = (-b + math.sqrt(D))/2*a
   x2 = (-b - math.sqrt(d))/2*a
   print(x1, x2)
input()

Работает только при условии D<0 печатает None.
Версия Питона 3.3.1
Не могу понять в чем дело, помогите пожалуйста.
bismigalis
ошибки в питоне как правило очень информативные
FishHook
Astal
До упражнения программа выглядела так:
Я Вас уверяю, что ни в одном учебнике не могло быть написано такого.
Singularity
FishHook
Я Вас уверяю, что ни в одном учебнике не могло быть написано такого.
А почему так?
Astal
FishHook
страница 53
FishHook
Singularity
А почему так?
А тебе ничего не кажется странным?

def PrintRoots(a, b, c):
    D = b**2 - 4 * a * c
    if D < 0:
    return None, None
    import math
    x1 = (-b + math.sqrt(D)) / 2 * a
    x2 = (-b - math.sqrt(D)) / 2 * a
    return x1, x2
FishHook
Astal,
найди одно отличие

Singularity
Нет отступов, функция назівается Print… хотя она ничего не печатает, при D < 0 лучше печать ошибку.
Не понимаю почему єто не может быть в учебнике.
Astal
bismigalis
ошибки в питоне как правило очень информативные
дело в том что
a = float(input("a= "))
b = float(input("b= "))
c = float(input("c= "))
D = b**2 - 4*a*c
if D < 0:
   print("None")
if D > 0:
   import math
   x1 = (-b + math.sqrt(D))/2*a
   x2 = (-b - math.sqrt(d))/2*a
   print(x1, x2)
input()

в Python Shell работает а в болкноте вылетает после ввода a,b,c трэйсбук и закрывает консоль что там написано не могу сказать
Astal
FishHook
Astal,
найди одно отличие
после if нет отступа это я понимаю. Это я когда сюда вставлял, ошибся. Но суть в другом как сделать чтобы а б ц вводились с клавиатуры.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB