-6

現在、Cesears Cipher、特に復号化を作成しています。

for char in decryptString:
    x = ord(char)
    x = x - decryptVal #this is my negative shift

    if x < 32:
        x = x + 32

    elif x > 126:
        x = x - 95


    result = result - chr(x)

print('')
print('Decrypted string: ')
print(result)

そして、私は常に得ています:

TypeError: unsupported operand type(s) for -: 'str' and 'str'

復号化されたメッセージの代わりに

理由はわかりませんが、洞察をいただければ幸いです:)

4

1 に答える 1

1

別の文字列から文字列を減算することはできません。これは、このエラーが示していることです (「-: のように見えるため、「サポートされていないオペランド タイプ」の「-」を見落としている可能性があります)。

あなたが何をしようとしているのかを正しく理解している場合は、変換された文字を出力文字列に追加してくださいresult+文字列は連結をサポートするので、次のようにします。

 result = result + chr(x)

resultまた、ループの前に初期化する必要があります。result = ''

于 2013-05-01T13:23:53.410 に答える