#python3で文字列を4つごとに区切る
番号を羅列したときに4つごとに","で区切るプログラムをとにかく書いてみました。
whileを使って書きました。
#ダメなコード
x=str(input("input"))
y=0
li=[]
while len(x)>= 4:
li.append(x[y:y+4])
x=x[4:]
a = ",".join(li)
print(a)
反省点
pythonのコミュニティでいろいろ評価を得たり、考えたりした結果を書いてく。
- 色々間違えた点としては
input()
にpython3はstr()
はいらないっぽい。 -
y
の需要がない。 - あと、今回は必要じゃなかったからいいけど、
len(x)
が4の倍数じゃないと切り捨てられるから、今回はいいけど致命的でした。
#少しきれいにした
x=input("input")
li=[]
while len(x)>= 4:
li.append(x[0:4])
x=x[4:]
a = ",".join(li)
print(a)
そしてなんと、コミュニティのpythonistの先輩の別解は一行。
x=input();print(','.join([x[i:i+4] for i in range(0,len(x),4)]))
これはびっくりでしたね。。
while
じゃなくて、for
だったらもっと楽にかけたのかもねぇ、、、
あとはzip
関数を使ったやり方も教えてくれました〜。
あとがき
めっちゃ雑でごめんなさい。
今回はいろいろ反省点ありました。
そして、有識者に聞くことは大切ですね。
最後に、まだまだはじめたばかりでpythonも詳しくないので、間違いなどがあったら、コメントください。