2016-05-04 9 views
-1

Ich muss eine rekursive Funktion schreiben, um eine Nachricht zu verschlüsseln, indem alle Kleinbuchstaben in das nächste Zeichen konvertiert (mit z umgewandelt in a) in Python. Das ist mein Code bisher, aber ich weiß nicht, wie ich weiter gehen soll oder wie ich den Fehler korrigieren kann.Nachricht verschlüsseln mit Rekursion, Python

sentence = input("Enter a message: \n") 
letter_number = 0 

def encrypt_sentence (s, number): 
    if letter_number == len(sentence) - 1: 
     return(s) 
    else: 
     if s[letter_number] == chr(122): 
      return encrypt_sentence(chr(ord(s[letter_number])-25), letter_number + 1) 
     else: 
      return encrypt_sentence(chr(ord(s[letter_number])+1), letter_number + 1) 

print("Encrypted message") 
print(encrypt_sentence(sentence, letter_number)) 
+0

Wenn Sie recurse, übergeben Sie 'ord (...) + 1' als Satzparameter. – mgilson

+0

'ord' gibt eine Ganzzahl zurück, und Sie übergeben diese Ganzzahl als' Satz'. Integer sind keine Listen von etwas; 5 [2] ergibt keinen Sinn. –

Antwort

0

Ich habe Ihren Code behoben und jetzt funktioniert es.

sentence = input("Enter a message: \n") 
letter_number = 0 

def encrypt_sentence (sentence): 
    if sentence: 
     if sentence == chr(122): 
      return chr(ord(sentence[letter_number])-25) 
     else: 
      return chr(ord(sentence[letter_number])+1) 
print("Encrypted message") 
ris = '' 
for word in sentence: 
    ris += encrypt_sentence(word) 
print(ris)