msvcrt getch暂停脚本,必须继续

时间:2013-11-21 16:41:12

标签: python msvcrt

PYTHON 3.3,msvcrt

import sys, msvcrt
print("Please press a key to see its value")
while 1:
    key = msvcrt.getch()
    print("the key is")
    print(key)
    if ord(key) == 27: # key nr 27 is escape
        sys.exit()

这是我的代码,仅作为示例。 当代码到达key = msvcrt.getch()*, or *key = ord(getch())时,代码暂停,就在这里,我使用了第一个代码。 我想让这段代码不断打印密钥是 当我给出一个新的输入时(当我按下一个键时),而不是仅仅打印

所以打印输出看起来像这样:

the key is
the key is
the key is
the key is
the key is
the key is
77
the key is
the key is
the key is

如果你想制作像 snake 这样的东西,你不希望你的游戏每次想要 getch ,你都不需要暂停,你不需要希望它暂停,等待输入。

2 个答案:

答案 0 :(得分:1)

使用msvcrt.kbhit检查是否按下了按键:

import sys, msvcrt
import time

print("Please press a key to see its value")
while 1:
    print("the key is")
    if msvcrt.kbhit(): # <--------
        key = msvcrt.getch()
        print(key)
        if ord(key) == 27:
            sys.exit()
    time.sleep(0.1)

答案 1 :(得分:0)

另一个使Python程序停止在特定级别并等待用户按下Enter键的示例,可以使用pygame生成“ /”和/或“ No”的空格。 作为示例,我使用Space表示“否”,但可以将touche Escape表示为“否”。 您可能不需要一些导入的库。制作井字游戏时需要它们。

代码如下:

<button id="start">Start Game</button>
<canvas id="canvas" width="300" height="300"></canvas>