1

我想创建一个简单的密码,它使用电话号码作为字母(输入给定)。

下面是我的代码,显示了我正在尝试仅使用示例文本执行的操作,但我得到一个关键错误的错误代码:'L'

def main():

    phoneCipher = {'id' : A, 'val': 2},{'id' : B, 'val': 22},{'id' : C, 'val': 222},{'id' : D, 'val': 3},{'id' : E, 'val': 33},{'id' : F, 'val': 333},{'id' : G, 'val': 4},{'id' : H, 'val': 44},{'id' : I, 'val': 444},{'id' : J, 'val': 5},{'id' : K, 'val': 55},{'id' : L, 'val': 555},{'id' : M, 'val': 6},{'id' : N, 'val': 66},{'id' : O, 'val': 666},{'id' : P, 'val': 7},{'id' : Q, 'val': 77},{'id' : R, 'val': 777},{'id' : S, 'val': 7777},{'id' : T, 'val': 8},{'id' : U, 'val': 88},{'id' : V, 'val': 888},{'id' : W, 'val': 9},{'id' : X, 'val': 99},{'id' : Y, 'val': 999},{'id' : Z, 'val': 9999}                  

    #THIS PART IS NOT WORKING BUT IS PART OF WHAT I WANT TO BE ABLE TO DO   
    originalMessage = input("Please input your message to be hidden: ")
    print(originalMessage)
    oMessageSplit = originalMessage.split()
    print(oMessageSplit) 



    sampleList = ['L', 'O', 'L']

    phoneCipherDict = dict((x['id'], x['val']) for x in phoneCipher)
    listCiphered = [phoneCipherDict[x] for x in sampleList]

    print(listCiphered)


main()

我需要的分析和反馈: 我认为这似乎有问题,可能不是整数而不是实际字符串。如果没有可能的方法来做到这一点,有人能指出我正确的方向,用什么方法来做这样的事情吗?

4

3 回答 3

1

尝试这个:

phoneCipher = {'id' : 'A', 'val': 2},{'id' : 'B', 'val': 22},{'id' : 'C', 'val': 222},...

键应该是字符串'L',只是L会尝试使用变量的值L作为键。

更新

要从字符串创建列表,请使用

sampleList = list(originalMessage)
于 2013-02-02T04:35:57.743 回答
1

你不需要做originalMessage.split(),它只会分裂'LOL'['LOL'].

一个简单list(originalMessage)的就好。你甚至不需要这样做,因为for char in 'LOL'它是一样的。

于 2013-02-02T04:42:16.323 回答
0

你的字典应该是这样的:

phoneCipher = {'A': 2, 'B': 22, ...}
于 2013-02-02T04:29:01.900 回答