ユーザー入力を受け取り、それを暗号化する少しのコードがあります。これはハッシュ式ではなく、単純なエニグマコードです。を簡略化されたコードは次のとおりです。数式は文字列を変数としてではなく文字列としてしか見ません
def Hash (string):
for x in range(0, len(string)):
if x == 0:
HashC = str(ord(string[x:x+1]))
else:
HashC = HashC+str(ord(string[x:x+1]))
print(HashC)
U = HashC
U = input("What do you want to hash? ")
Hash(U)
print(U)
出力プリントとその変換で起こっていただきました私を見ます。
私はコードが「暗号化」コードに文字列を変更したいので、私は出力> What do you want to hash? Test
> 84101
> 84101115
> 84101115116
> 84101115116
にしたい何
> What do you want to hash? Test
> 84101
> 84101115
> 84101115116
> Test
。
何が問題になっています。また、あなたは文字列は不変であるとして、あなたはそのため
string
への変更をしなかったようなものの、
U
にこの値を格納する必要があり、あなたのような何かをする必要がありますか?あなたは、あなたが見ているものが、あなたが見ているものとは違うとは言いませんでした。 C++スタイルの参照渡しのセマンティクス( 'str'は不変で、' Hash'の変更は 'Hash'以外の変数' U'を変更しません)を期待している問題があると思いますが、これは単なる推測ですあなたが間違っていると思うところで。 – ShadowRanger'U = HashC'ではなく' HashC'を返し、 'Hash(U)'ではなく 'U = Hash(U)'を返します。上で指摘したように、Pythonの文字列は不変です。 – vendaTrout
@vendaTroutあなたは答えを作成していただきありがとうございますか?それとも、この質問を削除したいのですか? – Keithwayne