前提・実現したいこと
Pythonで以下の練習問題を解いていたのですがわからないところがありました。
正の整数 int1 が引数として与えられたとき、 int1 の値の下桁から3桁毎にコンマ (,) を入れた文字列を返す関数 add_commas を作成してください。 ただし、数の先頭にコンマを入れる必要はありません。
以下のセルの ... のところを書き換えて add_commas を作成してください。
練習問題の回答
def add_commas(int1):
list1 = list(str(int1)) #文字列に変換し、更にそれを1文字ずつリストに格納する
str1 = ''
ccnt = 1 #3の倍数の位を調べるのに使う
for i in range(len(list1)-1, -1, -1): #1の位の値から、大きい方の位の値に向かって処理を行う
str1 = list1[i] + str1
if ccnt % 3 == 0 and i != 0: #3の倍数の位の前であり、一番大きい位でないならば
str1 = ',' + str1 #コンマをうつ
ccnt += 1
return str1
不明な点
for i in range(len(list1)-1, -1, -1)
のところがわかりません。
具体的には、
例えば、以下のようなコードを実行すると、
x = ['a','b','c','d','e']
x[4👎-1]
[]が返って来るのに、どうして練習問題のコードは、これで機能しているのでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/09 07:49
2021/10/10 15:50