2016-06-17 2 views
0

난 당신이 Ctrl 키를 누를 경우, 예를 들어 프로그램을 충돌합니다 c를 얼마나 기본에 상관없이 어떤 파이썬 3 프로그램에 그것을 발견하지 않은 : 오류 c를 Ctrl 키를 누르면 것이다파이썬 3 KeyboardInterrupt 오류

test=input("Say hello") 
if test=="hello": 
    print("Hello!") 
else: 
    print("I don't know what to reply I am a basic program without meaning :(") 

KeyboardInterrupt가 프로그램 충돌을 막는 방법이 있습니까?

이유는 내가 내 프로그램에 오류가 있음을 증명하고, 입력에 무언가를 붙여 넣을 때 실수로 Ctrl + C를 눌러 프로그램을 다시 읽어야하기 때문입니다. 그냥 아주 짜증나.

+1

그게 Ctrl + C의 핵심입니다. 실행중인 프로그램을 종료하는 단축키입니다. –

+0

정말요? 파이썬에서 그런 일이 발생했다는 것을 결코 알지 못했습니다. –

+0

파이썬뿐만 아니라 명령 행에서 실행하는 모든 것. 초기 유닉스 시스템 이래로 그렇게되었습니다. –

답변

2

control-c는 어느 정도 원하지 않더라도 KeyboardInterrupt을 발생시킵니다.

def user_input(prompt): 
    try: 
     return input(prompt) 
    except KeyboardInterrupt: 
     print("press control-c again to quit") 
    return input(prompt) #let it raise if it happens again 

또는 사용자를 강제로 : 당신이 입력은 당신이 뭔가를 할 수 가져 오는 동안 제어-c는 두 번 순서로 종료 칠 사용자를 필요로하기를 원한다면 당신은 아주 쉽게 예를 들어 오류를 처리 할 수 ​​그러나 내가 빨리 당신의 프로그램에 짜증 얻을 것 바로 가기를 사용하는 사람이 있기 때문에 두 번째 권하고 싶지 않다 있지만

def input_noQuit(prompt): 
    while True: #broken by return 
     try: 
      return input(prompt) 
     except KeyboardInterrupt: 
      print("you are not allowed to quit right now") 

: 아무리 그들이 사용하는 몇 번이나 뭔가를 입력하지 control-c 당신이 뭔가를 할 수 있습니다.

+0

Gratz to 10k :-) –