Python 数字を「,」で3桁区切りにする
これ、ハマりました。。
一見すると簡単な問題のように見えて、実は結構難しかったです。
Pythonの文字列型はイミュータブルなので、そのまま任意の文字列を挿入して「ハイ、終了!」ってわけにはいきません。
なので、今回は文字列を1個ずつ出力するようにして、必要な個所に任意の文字を出力するという方法で試してみました。
実装例
n = input() for i in range(len(n)): if i % 3 == 0 and i != 0: print(",", end="") print(n[i], end="")
出力内容
777,777,777
入力内容は「777777777」9桁のオール7です。
まず、変数 n に入力内容を代入する。
forループをrangeで回数を指定して回します。
この時にlen関数で変数の分だけ回るようにする。
今回は「3桁で「,」区切り」という事で4桁目(インデックスで言うと3)に「,」が挿入できればいいわけです。
よって、インデックスが3の倍数になるところに if で条件分岐して「,」を入れるようにしています。
それ以外であれば、そのまま出力という流れで上記の結果を出力する事が可能です。
他にも出す方法がありますが、今回はこれを採用してみました。