Остановка выполнения скрипта Python - PullRequest
0 голосов
/ 04 января 2019

Я написал этот вопрос после прочтения этого вопроса и этого другого . Я хотел бы остановить выполнение скрипта Python при нажатии кнопки. Вот код:

import turtle
from sys import exit

def stop_program():
    print("exit function")
    exit(0) #raise SystemExit(0) gives the same result
    print("after the exit function")

# Create keyboard binding
turtle.listen()
turtle.onkey(stop_program, "q")

# Main function
while True:
    # Code: everything you want

Если я нажму кнопку «q» (даже кратное время), вы получите:

exit function
exit function
exit function
exit function
exit function
exit function
exit function
...

т.е.. одна строка каждый раз, когда я нажимаю. Это означает, что exit работает для функции, а не для всей программы. Любое предложение?

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Не используйте цикл while, используйте turtle.mainloop ()

import turtle
from sys import exit

def stop_program():
    print("exit function")
    exit(0) #raise SystemExit(0) gives the same result
    print("after the exit function")

# Create keyboard binding
turtle.listen()
turtle.onkey(stop_program, "q")


turtle.mainloop()

Мне кажется, это работает нормально, попробуй.

0 голосов
/ 04 января 2019

Попробуйте использовать: sys.exit (), посмотрите, работает ли это. Ниже код работал для меня.

import turtle
import sys

def stop_program():
 print("exit function")
 sys.exit() #raise SystemExit(0) gives the same result
 print("after the exit function")


 # Create keyboard binding
 turtle.listen()
 turtle.onkey(stop_program, "q")
 turtle.mainloop()
...