Caesar şifresi yapıyorum ve kodu çalıştırdığımda indeks hatası alıyorum. Birkaç harf olduğunda mesajı çalışır ve şifreler, ancak ondan fazla kelime girdiğimde bana bir dizin hatası verir.IndexError: Sezginin şifrelenmesi için liste dışı aralık listesi
shift_key = int(raw_input("Enter in your key shift: 1-9\n>>> "))
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']
encrypted_alphabet = []
encrypted_message = ''
for i in alphabet[shift_key:]:
encrypted_alphabet.append(i)
input = raw_input("Enter text to be decoded\n>>> ").upper()
input = input.split()
for i in input:
for j in i:
index = alphabet.index(j)
encrypted_message += encrypted_alphabet[index]
encrypted_message += ' '
print encrypted_message
Ilgili olmayan ipucu: Eğer 'string 'diyorsanız, uzun' alfabe' listenizi 'string.ascii_uppercase' ile değiştirebilirsin –
İpucu ipucu ... module kullan :) Bu" etrafında sarın "yapar ve dizide sıfır. Tek karakter örneği: 'encrypted_char = alfabe [(alphabet.index (plain_char) + shift_value)% len (alfabe)]'. Alfabe 'alfabe = [x (x) için x (ch) (x) (65,91)]' – jDo
olabilir. Bir alfabe yaratmanın ek yöntemlerini açıkladığınız için teşekkürler. Her ikisi de iyi çalışıyor. – avbirm