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']
コードがこれを行う理由と、これを修正するにはどうすればよいですか?