Короче, код такой: answer = input("Ещё? (Y|N") if answer == "N": exit() if answer == "Y": Code 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() Code def main(): # код answer = input("Ещё? (Y|N") if answer == "N": exit() else: main() main()
While true юзай и если ответ Y, то просто continue делай The post was merged to previous Nov 6, 2019 Проще через while true
Ну да, можно и так while True: # код answer = input("Ещё? (Y|N") if answer == "N": exit() else: continue Code 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 Code 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 Code __init__(self, text): self.text = text , а в except Restarter as text: Code except Restarter as text: читать, вот только на более глубоких слоях придётся в общем except фильтровать этот момент... The post was merged to previous Nov 9, 2019 или вы не заметили, что в одном месте происходит raise этого класса, а в другом except класса? :D