1
ユーザーからの2つの文字列入力を受け取り、1つの文字列値を返す関数を作成しました。これは、メッセージや何らかの形式のテキストを保持する1つの文字列と、ユーザーが入力したカスタムアルファベットを保持する別の文字列を取ることを意図しています。次に、ユーザーが入力したアルファベットを使用してエンコードされたメッセージを返します。カスタムエンコーディング関数のエラー
例:私の関数のエンコーディングが正常に動作
text_to_encode = "abcd"
user_alphabet = "bcdefghijklmnopqrstuvwxyz"
print(encode(text_to_encode, user_alphabet))
にスペースを含む文字列になると、しかし、それはスペースを無視し、空白なしでエンコードされたメッセージを出力します。
例:
text_to_encode = "ab cd"
user_alphabet = "bcdefghijklmnopqrstuvwxyz"
print(encode(text_to_encode, user_alphabet))
これの出力は次のようになります。それは "BC DE" は "BCDE"。
私のコードでどこが間違っているのか分かりませんが、どんな助けにも感謝します。これは私が持っているものです。
def encode(text_to_encode, user_alphabet):
text_to_encode_list = []
for ch in text_to_encode:
text_to_encode_list.append(ch)
user_alphabet_list = []
for ch in user_alphabet:
user_alphabet_list.append(ch)
original_alphabet = "abcdefghijklmnopqrstuvwxyz"
original_alphabet_list = []
for ch in original_alphabet:
original_alphabet_list.append(ch)
result = []
for value_x in text_to_encode_list:
flag = False
for value_y in original_alphabet:
if value_x == original_alphabet_list[value_y]:
flag = True
result.append(user_alphabet_list[value_y])
break
if flag == False:
result.append(value_x)
encoded_text = ""
for value in result:
encoded_text += value
return encoded_text.upper()
なぜすべての文字列をリストに変換していますか?リストと同じインデックスで文字列にアクセスできます。 – Barmar
私はかなり新しいプログラミングです...チップのおかげで! –
ネストされたループの代わりに、元のアルファベットからユーザのアルファベットまでのマッピングを含む辞書を作成する必要があります。 – Barmar