在击打en之前自动添加输入空格

2024-03-29 08:19:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python没有太多的经验,我相信甚至我的标题都是不正确的措辞。我有一个程序,当你输入一个键列表并按回车键时,它会播放一个音符。不过,要想让它工作,你需要在每个键之间按空格键。我想让它接受说eflkjh而不是efl k j h。我该怎么做?在

soundBinary = input(" > ")
for note in soundBinary.split():

    if note == "q":          #rest
        freq = 37
    elif note == "w":        #b
        freq = 280
    elif note == "e":        #b
        freq = 300
    elif note == "r":        #b
        freq = 320
    elif note == "t":        #b
        freq = 340
    elif note == "y":        #b
        freq = 360
    elif note == "u":        #b
        freq = 380
    elif note == "i":        #b
        freq = 400
    elif note == "o":        #b
        freq = 440
    elif note == "p":        #b
        freq = 460
    elif note == "a":        #b
        freq = 480
    elif note == "s":        #b
        freq = 500
    elif note == "d":        #b
        freq = 520
    elif note == "f":        #b
        freq = 540
    elif note == "g":        #b
        freq = 560
    elif note == "h":        #b
        freq = 580
    elif note == "j":        #high c
        freq = 600
    elif note == "k":        #low c
        freq = 620
    elif note == "l":        #d
        freq = 640
    elif note == "z":        #e
        freq = 660
    elif note == "x":        #f
        freq = 680
    elif note == "c":        #g
        freq = 700
    elif note == "v":        #a
        freq = 720
    elif note == "b":        #b
        freq = 740
    elif note == "n":        #b
        freq = 760
    elif note == "m":        #b
        freq = 780    

    winsound.Beep(freq, rate)

Tags: 程序标题列表forinput经验note音符
2条回答

尝试以下操作:

for note in soundBinary:
    if note == "q":
        ....

示例:

^{pr2}$

输出:

scottsmudger@ns207588:~ $ python test.py
a
b
c
d
e
f
g

这有两个部分:

(1)只需迭代输入字符串的字符:

for note in soundBinary:

这样就可以按顺序排列角色,而不必分割任何内容。在

(2)建立一个参考字典,并将其用作查找列表:

^{pr2}$

现在,您的程序在上面的循环中使用这个:

for note in soundBinary:
    winsound.Beep( note_id[note] )

这能让你动起来吗?将引用列表放在程序的顶部可以使实际的逻辑流更易于阅读。在

相关问题 更多 >