Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 19, 2013 10:51:57

Astal
Зарегистрирован: 2013-06-19
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста с простой задачкой.

В общем смысл такой: начал изучать питон по электронному учебнику. В конце темы было задание:
Измените программу вычисления корней квадратного уравнения так,
чтобы пользователь сам мог вводить коэффициенты 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
Не могу понять в чем дело, помогите пожалуйста.

Отредактировано FishHook (Июнь 19, 2013 11:01:16)

Офлайн

#2 Июнь 19, 2013 10:57:28

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Помогите пожалуйста с простой задачкой.

ошибки в питоне как правило очень информативные

Офлайн

#3 Июнь 19, 2013 11:01:57

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите пожалуйста с простой задачкой.

Astal
До упражнения программа выглядела так:
Я Вас уверяю, что ни в одном учебнике не могло быть написано такого.



Офлайн

#4 Июнь 19, 2013 11:07:21

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Помогите пожалуйста с простой задачкой.

FishHook
Я Вас уверяю, что ни в одном учебнике не могло быть написано такого.
А почему так?

Офлайн

#5 Июнь 19, 2013 11:11:07

Astal
Зарегистрирован: 2013-06-19
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста с простой задачкой.

FishHook
страница 53

Прикреплённый файлы:
attachment start_with_python.pdf (508,3 KБ)

Офлайн

#6 Июнь 19, 2013 11:11:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите пожалуйста с простой задачкой.

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



Офлайн

#7 Июнь 19, 2013 11:14:25

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите пожалуйста с простой задачкой.

Astal,
найди одно отличие



Офлайн

#8 Июнь 19, 2013 11:15:46

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Помогите пожалуйста с простой задачкой.

Нет отступов, функция назівается Print… хотя она ничего не печатает, при D < 0 лучше печать ошибку.
Не понимаю почему єто не может быть в учебнике.

Офлайн

#9 Июнь 19, 2013 11:19:51

Astal
Зарегистрирован: 2013-06-19
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста с простой задачкой.

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 трэйсбук и закрывает консоль что там написано не могу сказать

Отредактировано FishHook (Июнь 19, 2013 11:22:57)

Офлайн

#10 Июнь 19, 2013 11:22:28

Astal
Зарегистрирован: 2013-06-19
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите пожалуйста с простой задачкой.

FishHook
Astal,
найди одно отличие
после if нет отступа это я понимаю. Это я когда сюда вставлял, ошибся. Но суть в другом как сделать чтобы а б ц вводились с клавиатуры.

Отредактировано Astal (Июнь 19, 2013 11:23:44)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version