Уведомления

Группа в Telegram: @pythonsu

#1 Май 22, 2016 19:08:28

Kirik344
Зарегистрирован: 2016-05-22
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помщь новичку от профи: нет go to!

Здравствуйте, гуру, про и прочие мастера програмирования. В развлекательно-познавательных целях начал изучать Python. Последний раз с кодингом связывался в школе. тогда я изучал QBasic, старинный как DOS.
И теперь столкнулся с проблемой.
Я поставил себе задачу - написать программу, которая автоматически бы подсчитывала уравнения и формулы примерно 8-го класса. Решил начать с малого - квадратных уравнений. Все хорошо и все работает, но я никак не могу понять, как заставить ее повторяться. Если бы это был бэйск, я бы просто в конце программы прописал goto на строчку с запросом вроде: “Хотите попробовать снова?”.
Но в питоне нет goto. Как быть?

import math
def Discr(a, b, c):
    return b**2-4*a*c
def X1(a, b, c, d):                     #Функции - заделка под расширение проги в готовом варианте.
    return (-b + d)/(2*a)
def X2(a, b, c, d):
    return (-b + d)/(2*a)
print('Введите переменные a, b и с для уравнения ax^2 + bx + c.')
a1 = int(input('a = '))
b1 = int(input('b = '))
c1 = int(input('c = '))
D = Discr(a1, b1, c1)
if D < 0:
    print('Для уравнения ({0})x^2 - ({1})x + ({2}) нет решения.'. format(a1, b1, c1))
elif not D:
    x = X1(a1, b1, c1, D)
    print('    Ответ: x(1, 2) = {0}.'. format(x))
else:
    x1 = X1(a1, b1, c1, D)
    x2 = X2(a1, b1, c1, D)
    print('    Ответ: x(1) = {0}; x2 = {1}.'. format(x1, x2))

Офлайн

#2 Май 22, 2016 19:32:08

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Помщь новичку от профи: нет go to!

Где было написано о процедурах, выводе, условиях и форматировании строк ничего не было о циклах?

Офлайн

#3 Май 22, 2016 19:39:04

Kirik344
Зарегистрирован: 2016-05-22
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помщь новичку от профи: нет go to!

Shaman
Где было написано о процедурах, выводе, условиях и форматировании строк ничего не было о циклах?
Пробовал. Но я криворукий, ибо в школе так и не понял, как эти while и for использовать. Что касается процедур и форматирования - скачал маленький мануальчик по основным командам. И над фунцкциями парился около 2-х часов, пока не понял, как ими пользоваться.

Офлайн

#4 Май 22, 2016 19:41:00

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

Помщь новичку от профи: нет go to!

Kirik344
Но я криворукий, ибо в школе так и не понял
А с чего вы решили, что сейчас поймете? Когнитивные функции с годами только ухудшаются.



Офлайн

#5 Май 22, 2016 19:44:12

Kirik344
Зарегистрирован: 2016-05-22
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помщь новичку от профи: нет go to!

FishHook
Тогда я просто не вникал в них, ибо был goto. Сейчас я немного разобрался, как цикл работает, но практических навыков не хватает, чтобы их использовать. А объяснить некому

Офлайн

#6 Май 22, 2016 19:45:38

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Помщь новичку от профи: нет go to!

import math
answer = 'YES'
while answer == 'YES':
    ''' тут пошел
    ваш код выполнения
    программы'''
    answer = input('Хотите попробовать снова?  YES/NO >>>  ')

Офлайн

#7 Май 22, 2016 19:52:16

Kirik344
Зарегистрирован: 2016-05-22
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помщь новичку от профи: нет go to!

marvellik
Пробовал. Помогло. До этого пытался сделать что-то похожее, но получалось страшно.

Офлайн

#8 Май 22, 2016 19:54:31

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

Помщь новичку от профи: нет go to!

Kirik344
До этого пытался сделать что-то похожее, но получалось страшно
А можно посмотреть?



Офлайн

#9 Май 22, 2016 19:56:41

Kirik344
Зарегистрирован: 2016-05-22
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помщь новичку от профи: нет go to!

FishHook
Нет. Те страшные попытки я уничтожал сразу после провала.

Офлайн

#10 Май 23, 2016 14:32:13

vkhacker
Зарегистрирован: 2016-05-23
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помщь новичку от профи: нет go to!

Python Goto
ИМХО лучше использовать цикл while.

Отредактировано vkhacker (Май 23, 2016 14:34:50)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version