Короче, код такой: answer = input("Ещё? (Y|N") if answer == "N": exit() if answer == "Y": Код answer = input("Ещё? (Y|N") if answer == "N": exit() if answer == "Y": Вот тут мне надо чтобы при ответе Y программа перезапускалась и начиналось все по новой
def main(): # код answer = input("Ещё? (Y|N") if answer == "N": exit() else: main() main() Код def main(): # код answer = input("Ещё? (Y|N") if answer == "N": exit() else: main() main()
While true юзай и если ответ Y, то просто continue делай --- Сообщение объединено с предыдущим 6 ноя 2019 Проще через while true
Ну да, можно и так while True: # код answer = input("Ещё? (Y|N") if answer == "N": exit() else: continue Код while True: # код answer = input("Ещё? (Y|N") if answer == "N": exit() else: continue
i911, File "wim.py", line 2 what = input("Что делаем?(+, -): ") ^ IndentationError: expected an indented block
Вот через класс реализовал class Restarter(Exception): pass def main(): if input("Ещё? (Y|N) ") == "Y": raise Restarter() while True: try: main() except Restarter: print("Рестарт...") continue break Код class Restarter(Exception): pass def main(): if input("Ещё? (Y|N) ") == "Y": raise Restarter() while True: try: main() except Restarter: print("Рестарт...") continue break
будет полезно, если exit() уже для чего-то другого занят, да и можно в классе __init__(self, text): self.text = text Код __init__(self, text): self.text = text , а в except Restarter as text: Код except Restarter as text: читать, вот только на более глубоких слоях придётся в общем except фильтровать этот момент... --- Сообщение объединено с предыдущим 9 ноя 2019 или вы не заметили, что в одном месте происходит raise этого класса, а в другом except класса? :D