2016-03-23 12 views
0

Ich bin in der Lage, die Nachricht mithilfe der ASCII-Tabelle zu codieren, aber leider kann ich die Nachricht nicht entschlüsseln. Nachdem der Benutzer das Ergebnis erhalten hat, wird er/sie entweder Ja oder Nein eingeben, um die Nachricht an die ursprüngliche Eingabe zu wiederholen. Vielen Dank!Wie kann ich mit dem Befehl "chr" und "ord" eine Nachricht entschlüsseln, die ein Benutzer eingegeben hat?

def main(): 

    message = input("Please input the message you want to encode: ") 
    for ch in message: 
     print(ord(ch)) 

    print() 

    decode = input("Would you like to decode it? (Yes or No?): ") 
    if decode == str('yes', 'Yes'): 
     plainText = "" 
     for ch in message: 
      numCode = eval(decode) 
      plainText = plainText + chr(message) 
     print("Your decoded message is: ", plainText) 


    else: 
     print("Thank you for encrypting with us today!") 



main() 
+1

Verschlüsselung ist dies nicht ... vielleicht Codierung ... –

Antwort

1

Sie sollten die codierte Nachricht speichern, nachdem der Benutzer es bietet und zu verschlüsseln, mit ord:

message = input("Please input the message you want to encode: ") 
encoded = "".join([ord(ch) for ch in message]) 

Die nächste problematisch ist dieses:

plainText = plainText + chr(message) 

Dies versucht zu entschlüsseln die gesamte Nachricht mit chr bei jeder Iteration. Es wird eine Fehlermeldung:

>>> chr("abc") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: an integer is required 

Statt chr(message) es chr(ch) sein sollte, so ist es separat jedes Zeichen decodiert. Sie können es auch tun, effizienter mit "".join():

def main(): 

    message = input("Please input the message you want to encode: ") 
    for ch in message: 
     print(ord(ch)) 

    print() 

    decode = input("Would you like to decode it? (Yes or No?): ") 
    if decode == str('yes', 'Yes'): 
     plain_text = "".join([chr(ch) for ch in encoded]) 
     print("Your decoded message is: ", plain_text) 
    else: 
     print("Thank you for encrypting with us today!") 



main() 

Beachten Sie auch, dass Variablennamen Schlange Fall in Python sein sollte

Verwandte Themen