2

chr() 関数に問題があります。私のコードは、最初にユーザー入力を受け取り、それを配列に入れ、次に ord 関数を使用して対応する数値に変換し、キーワードで同じことを行います。次に、zip 関数を使用して両方の配列を加算して数値を取得し、chr 関数を使用してそれをテキストに戻します。問題は、chr 関数の出力が正しくないことです。

例えば

c の数値は 99 です

h の数値は 104

それらを足して203にする

私のコードは \xcb を出力します

別のコードを作成したとき

leb = chr(203)
print leb

これは 203 を特異文字である Ë として出力し、それをデコードするために必要なものです

これが私のコードです

num_string = raw_input("enter what you would like to encrypt")
num_list = []
for num in num_string:
    num_list.append(ord(num)) 
    print num_list

key_string = raw_input("enter the keyword")
key_list = []
for key in key_string:
   key_string = key_list.append(ord(key)) 
   print key_list

end_string = [x + y for x, y in zip(num_list, key_list)]
end_list = []
print end_string
for end in end_string:
    end_list.append(chr(end)) 
print end_list

これを実行すると、これが出力されます

猫を暗号化したいものを入力してください

[99]

[99、97]

[99、97、116]

キーワードhatを入力してください

[104]

[104、97]

[104、97、116]

[203、194、232]

['\xcb', '\xc2', '\xe8']

コードがこれを行う理由と、これを修正するにはどうすればよいですか?

4

2 に答える 2