检测角色并对其进行操作

时间:2017-11-14 13:55:23

标签: python

    if what == "decode":    
    dog_input = input("What would you like to decode?")
    letternumber = len(dog_input)
    a=(dog_input)
    for i in range(a):    
        if dog_input[1] == "1":
            print("a")
        if dog_input[1] == "2":
            print("b")
        if dog_input[1] == "3":
            print("c")
        if dog_input[1] == "4":
            print("d")
        if dog_input[1] == "5":
            print("e")
        if dog_input[1] == "6":
            print("f")
        if dog_input[1] == "7":
            print("g")
        if dog_input[1] == "8":
            print("h")
        if dog_input[1] == "9":
            print("i")
        if dog_input[2] == "10":
            print("j")
        if dog_input[2] == "11":
            print("k")
        if dog_input[2] == "12":
            print("l")
        if dog_input[2] == "13":
            print("m")
        if dog_input[2] == "14":
            print("n")
        if dog_input[2] == "15":
            print("o")
        if dog_input[2] == "16":
            print("p")
        if dog_input[2] == "17":
            print("q")
        if dog_input[2] == "18":
            print("r")
        if dog_input[2] == "19":
            print("s")
        if dog_input[1] == "20":
            print("t")
        if dog_input[2] == "21":
            print("u")
        if dog_input[2] == "21":
            print("v")
        if dog_input[2] == "22":
            print("w")
        if dog_input[2] == "23":
            print("x")
        if dog_input[2] == "24":
            print("y")
        if dog_input[2] == "25":
            print("z")
        if dog_input[3] == "-64":
            print(" ")

此代码不执行任何操作 - 它会随机打印三到四次字符。我希望用户输入数字并输出信件,但它拒绝阅读。我如何让它运作?另外,有没有更快的方式为字母分配数字?

2 个答案:

答案 0 :(得分:0)

您可以创建一个字典来存储字母及其编号:

dictionary = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7,'h':8,'i':9,'j':10,'k':11,'l':12,'m':13,'n':14,'o':15,'p':16,'q':17,'r':18,'s':19,'t':20,'u':21,'v':22,'w':23,'x':24,'y':25,'z':26,' ':-64} 

然后使用Series根据您的案例中的值来获取密钥:

lookup_list = pd.Series(dictionary)
print(lookup_list[lookup_list.values == letternumber ].index)
answer = lookup_list[lookup_list.values == 19].index

答案 1 :(得分:0)

问题:

isUsingCache="true"

这将逐字母地重复字符串或数组,因此将不会检测到两位数的输入。示例:输入12将被视为两个单独的输入1和2.

解决方案:

将输入作为空格分隔数字,并将空间视为分隔符将其分开。请参阅以下代码段

for i in range(a) :

以下代码(仅限循环部分)解决了这个问题,这是为字符分配编号的更好方法。

dog_input_final = dog_input.split(" ")