Найти - Пользователи
Полная версия: Помщь новичку от профи: нет go to!
Начало » Python для новичков » Помщь новичку от профи: нет go to!
1 2
Kirik344
Здравствуйте, гуру, про и прочие мастера програмирования. В развлекательно-познавательных целях начал изучать 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))
Shaman
Где было написано о процедурах, выводе, условиях и форматировании строк ничего не было о циклах?
Kirik344
Shaman
Где было написано о процедурах, выводе, условиях и форматировании строк ничего не было о циклах?
Пробовал. Но я криворукий, ибо в школе так и не понял, как эти while и for использовать. Что касается процедур и форматирования - скачал маленький мануальчик по основным командам. И над фунцкциями парился около 2-х часов, пока не понял, как ими пользоваться.
FishHook
Kirik344
Но я криворукий, ибо в школе так и не понял
А с чего вы решили, что сейчас поймете? Когнитивные функции с годами только ухудшаются.
Kirik344
FishHook
Тогда я просто не вникал в них, ибо был goto. Сейчас я немного разобрался, как цикл работает, но практических навыков не хватает, чтобы их использовать. А объяснить некому
marvellik
import math
answer = 'YES'
while answer == 'YES':
    ''' тут пошел
    ваш код выполнения
    программы'''
    answer = input('Хотите попробовать снова?  YES/NO >>>  ')
Kirik344
marvellik
Пробовал. Помогло. До этого пытался сделать что-то похожее, но получалось страшно.
FishHook
Kirik344
До этого пытался сделать что-то похожее, но получалось страшно
А можно посмотреть?
Kirik344
FishHook
Нет. Те страшные попытки я уничтожал сразу после провала.
vkhacker
Python Goto
ИМХО лучше использовать цикл while.
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