は、なぜ私がこの関数でエラー「範囲外のインデックス」を取得しない場合:インデックスelse文ののpython3
def encode(x):
diff_char = x[0]
max_ind = len(x)
i = 1
while i < max_ind and diff_char == x[i]:
i += 1
return str(i) + diff_char + encode(x[i:])
、なぜ私はこのような場合-else文を入れて行くことができますか?
def encode(x):
if not x:
return ""
else:
diff_char = x[0]
max_ind = len(x)
i = 1
while i < max_ind and diff_char == x[i]:
i += 1
return str(i) + diff_char + encode(x[i:])
'x [0]'は 'x 'が空のときに範囲外をトリガーします。そのためです。 –
'x 'が空のときに' x [0] 'は何をすると思いますか? – ShadowRanger
xの最初の長さが0でない、つまりlen(x)!= 0の場合はチェックしないでください。 – Sanchit