前提・実現したいこと
前提
プログラミング勉強始めたばかりです
Pythonさわりはじめたばかりです
versionはPython 3.5.2になります
forループで文字列の変換をしていたらわからないことがあったので教えて下さい
実現したいこと
文字列を置換したい
if,eiifの違いに関する理解
文字列置換に対する順番の理解
ソースコード1は狙い通りに文字が狙い通りに数字に置き換わったときのソースコードになります。
ソースコード2では置換する前の文字が数字の後ろに付いてしまいました。
ソースコード3では置換後の文字列が想定と逆順の出力担ってしまいました。
以上の違いは感覚的には分かるのですが、なぜこのような違いが起こるか解説していただけると助かります。
該当のソースコード1
Python
1s = 'AEGIGOEHHH' 2s_mod = '' 3for i in range(len(s)): 4 c = s[i] 5 if c == 'A': 6 s_mod = s_mod + '1' 7 elif c == 'E': 8 s_mod = s_mod + '2' 9 elif c == 'G': 10 s_mod = s_mod + '3' 11 elif c == 'I': 12 s_mod = s_mod + '4' 13 elif c == 'O': 14 s_mod = s_mod + '5' 15 else: 16 s_mod = s_mod + c 17print(s_mod)#1234352HHH 18
該当のソースコード2
Python
1s = 'AEGIGOEHHH' 2s_mod = '' 3for i in range(len(s)): 4 c = s[i] 5 if c == 'A': 6 s_mod = s_mod + '1' 7 if c == 'E': 8 s_mod = s_mod + '2' 9 if c == 'G': 10 s_mod = s_mod + '3' 11 if c == 'I': 12 s_mod = s_mod + '4' 13 if c == 'O': 14 s_mod = s_mod + '5' 15 else: 16 s_mod = s_mod + c 17print(s_mod)#1A2E3G4I3G52EHHH
該当のソースコード3
Python
1 2s = 'AEGIGOEHHH' 3s_mod = '' 4for i in range(len(s)): 5 c = s[i] 6 if c == 'A': 7 s_mod = '1' + s_mod 8 elif c == 'E': 9 s_mod = '2' + s_mod 10 elif c == 'G': 11 s_mod = '3' + s_mod 12 elif c == 'I': 13 s_mod = '4' + s_mod 14 elif c == 'O': 15 s_mod = '5' + s_mod 16 else: 17 s_mod = c + s_mod 18print(s_mod)#HHH2534321
補足情報(FW/ツールのバージョンなど)
Python 3.5.2
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/04 00:39