2016-03-23 12 views
0

İletiyi ASCII tablosunu kullanarak kodlayabiliyorum ancak maalesef iletinin kodunu çözemiyorum. Kullanıcı sonucu aldıktan sonra, mesajı orijinal girişe tekrar yazmak için evet veya hayır yazacaktır. Teşekkürler!Bir kullanıcının girdiği bir mesajı çözmek için "chr" ve "ord" komutunu nasıl kullanabilirim?

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

şifreleme olması gerektiği kodlamayı unutmayınız ... –

cevap

1

You should kullanıcı bunu sağlar ve ord ile kodlamak sonra kodlanmış mesaj saklamak:

plainText = plainText + chr(message) 

Bu çözmeye çalışır:

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

sonraki sorunlu çizgi şudur Her iterasyonda tüm iletiyi chr ile. ayrı ayrı her bir karakteri deşifre böylece,

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

yerine chr(message) o chr(ch) olmalıdır: Bu bir hata mesajı alınıyor. Sen "".join() daha verimli bunu da yapabilirsiniz:

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() 

Ayrıca belki ... değişken adları bu değildir Python yılan durumda

İlgili konular