【发布时间】:2017-06-26 18:50:23
【问题描述】:
基本上,我有一个可以非常简单地加密消息的函数。
def encrypt(message):
alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
key = ["4","x","z","@","%","b","j","q","(","ƒ","¥","µ","˚","nå","ø","π","å","œ","¢","∞","∫","µ","≈","`","¬","…"]
new_message = ""
for x in range(0,len(message)):
new_message = message.replace(message[x],key.index[alphabet.index(message[x])])
return new_message
print(encrypt(input("What would you like to encrypt").lower()))
这应该取字母并将其替换为列表键中具有相同索引的字符,但是我收到错误:
TypeError: 'builtin_function_or_method' object is not subscriptable
【问题讨论】:
-
有更好的方法来做到这一点,但你的问题是
key.index[alphabet.index(message[x])]。请改用key[alphabet.index(message[x])]。 -
@JaredGoguen 我认为这行不通,有些键包含在字母表中。这是
str.translate的用例。 -
@juanpa.arrivillaga 哈哈,同意...直到我发布答案后才看到这条消息。
标签: python list python-3.x indexing