¿Por qué no funciona esta interrupción del teclado de Python? (en pycharm)

El bucle try / except de Python no parece provocar una interrupción del teclado cuando se presiona Ctrl + C mientras se depura mi código en pycharm. Mi código se ve así:

numbers = [] loop = True try: # ===========SUBROUTINES================== def help(): print("To view the list type 'view'" "\n To add an item type 'add'" "\n To remove an item type 'remove'" "\n To exit type exit or Ctrl + c can be used at any time") # =========SUBROUTENES END=============== while loop: task = input("What do you want to do? Type \"help\" for help:- ") if task == 'help': help() else: print("Invalid return please try again.") except KeyboardInterrupt: exit() 

EDITAR: Parece que hay algunos problemas con el funcionamiento de mi código reducido y no se produce el mismo error. El código completo se puede ver aquí . También he vuelto a adelgazar el código (el código anterior) y ha producido el mismo error.

Desde su captura de pantalla, parece que está ejecutando este código en un IDE. Lo que pasa con los IDE es que no son lo mismo que ejecutar normalmente, especialmente cuando se trata del manejo de caracteres del teclado. La forma en que presiona ctrl-c, su IDE cree que desea copiar texto. El progtwig de python nunca ve al personaje. ¿Tal vez aparece una ventana separada cuando se ejecuta? Luego seleccionas esa ventana antes de ctrl-c.

Asegúrese de que la ventana esté seleccionada cuando presione ctrl + c. Acabo de ejecutar su progtwig en IDLE y funcionó perfectamente para mí.

Aquí está funcionando normalmente, ya que coloco una variable “x” en su código y uso tabulaciones en lugar de espacios .

 try: def help(): print("Help.") def doStuff(): print("Doing Stuff") while True: x = int(input()) if x == 1: help() elif x == 2: doStuff() else: exit() except KeyboardInterrupt: exit() 

Si ese comentario no resuelve su problema, (de @tdelaney) necesita enfocar su ventana de shell (lo que significa que ha hecho clic en él cuando se está ejecutando el progtwig) y luego puede usar Control + C