如何检查输入的3个字母是否在qwer键盘的连续顺序中?

2024-10-06 06:48:00 发布

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

假设用户在键盘上输入'hkuzasd7854hjd;a'在键盘上'asd'是彼此相邻的字母。有没有一种简单的方法可以让我循环通过键盘上的3行键,检查用户输入的值是否包含3个连续的字母?是否可以使代码返回整数值而不是真或假?。谢谢您。在


Tags: 方法代码用户检查用户字母整数键盘asd
2条回答

这段代码向列表添加并找到模式。列表“found”包含4个子列表,每个子列表代表键盘上的一行。所以“qwe”将在索引为1的found的第二个子列表中。在

rows = ["1234567890-=",
        "qwertyuiop",
        "asdfghjkl;'",
        "\zxcvbnm,."]


string = "qwertyytruasddffdsgs4rewewerw";

found = [[],[],[],[]]


for row_idx,x in enumerate(rows):
    for y in range(0, len(string)-3):
        #Forward match
        if string[y:y+3] in x:
            found[row_idx].append(string[y:y+3])
        #Backwards match
        if (string[y:y+3])[::-1] in x:
            found[row_idx].append(string[y:y+3])

print found

至于其他键盘布局,您需要为您想要支持的每一个单独的行列表。在

希望这有点帮助。在

实际上,连续的三个字母序列太少了,你可以列出它们:

BAD3 = { 
    "qwe", "wer", "ert", "rty", "tyu", "yui", "uio", "iop",
    "asd", "sdf", "dfg", "fgh", "ghj", "hjk", "jkl",
    "zxc", "xcv", "cvb", "vbn" }

def qwertz(string):
    return any(bad in string for bad in BAD3)

很原始,我知道。如果你愿意的话,你可以用一个函数来准备坏的集合。在


“qwer功能更新两次”,例如“WE计数两次”

^{pr2}$

相关问题 更多 >