2017-03-31 64 views
-1

我试图让while循环在按下c而不停止使用输入时停止。如何在不使用Python输入的情况下检查用户输入

我此刻的代码是这样的:

while True: 
     print("Test") 
     if msvcrt.kbhit(): 
      if (msvcrt.getch() == "c"): 
       os._exit(0) 
       break 
      elif (msvcrt.getch() != "c"): 
       continue 

FYI我的窗口。 除了我已经完成的尝试之外,如何做到这一点的任何想法?

+1

你看到了吗? http://stackoverflow.com/questions/13180941/how-to-kill-a-while-loop-with-a-keystroke –

+0

我假设你在Python 3中,因为你使用'print'作为函数。在这种情况下,'msvcrt.getch()'返回'bytes','b“c”!=“c”'。你希望'msvcrt.getwch()'得到一个Python 3以'str'返回的Unicode字符。 – eryksun

回答

0

问题出在线if (msvcrt.getch() == "c"):

您不使用getch() == "c",而是使用getch() == 99getch() == ord("c")

为什么?因为这是ord()返回的内容。它返回一个整数,表示字符串中唯一字符的Unicode代码点,在本例中为c。


顺便说一句,巨蟒已经KeyboardInterrupt,允许使用按Ctrl +ç中断代码。你也可以try-except吧。


注意:您可能还需要使用67如果Caps Lock键上。

相关问题