Python関数にエラーがあります。コードを以下に示します。Python TypeError:リストインデックスは、strではなく整数またはスライスでなければなりません
def vigenere():
message1 = input('message: ')
keyl = ['l', 'e', 'm', 'o', 'n']
if len(message1) > len(keyl):
keyl = [i * 5 for i in keyl]
else:
pass
for med in message1:
encrypting = chr(ord(med) + ord(keyl[med]))
print(encrypting)
encmessage = input('Is there a message you would like to decrypt?')
for mes in encmessage:
decrypting = chr(ord(med) - ord(keyl[med]))
print(decrypting)
私の機能を呼び出そうとすると、pythonシェルがエラーを表示します。エラーは以下のとおりです。
================ RESTART: /Users/ggmac/Documents/ProjectM.py================
vigenere()
message: flee
Traceback (most recent call last):
File "", line 1, in
vigenere()
File "/Users/gg-mac/Documents/ProjectM.py", line 75, in vigenere
encrypting = chr(ord(med) + ord(keyl[med]))
TypeError: list indices must be integers or slices, not str
私のエラーについて教えてください。
ありがとうございました。それは私の問題を解決しました。 –
今心配です。あなたの答えがあればそれを受け入れてください。 – Allen