0

我想用python(windows计算机)制作一个可以传输莫尔斯电码的程序。如果我在 python shell 中按“b”,我希望计算机直接用长哔声响应。当我按“n”时也是如此,那么程序应该发出一声短促的哔哔声。我可以使用 raw_input 执行此操作,但每次按“b”或“n”时都必须按 Enter。我怎样才能做到这一点,而不必每次都按 Enter 键,只需通过哔哔声立即响应?

我已经尝试过这个:

def Transmit():

    c = 1
    while c == 1:
        a = raw_input("Press key: ")
        if a == "b":
            winsound.Beep(1000, int(1000*x))
        if a == "n":
            winsound.Beep(1000, int(3000*x))

并且函数 msvcrt.getch 似乎没有在我的 python shell 中工作。

4

1 回答 1

0

使用msvcrt.getch*

import winsound
import msvcrt

x = 0.1
while 1:
    a = msvcrt.getch()
    if a == "b":
        winsound.Beep(1000, int(1000*x))
    if a == "n":
        winsound.Beep(1000, int(3000*x))
于 2014-05-29T16:13:58.750 回答