Python3の標準出力で数字を空白で区切って出力したかった話

また休日にpaizaスキルチェックを受けている。

今回は数字を空白で区切って出力しろって問題を解いてた。

標準出力はprint()使うのはいいとして、どうやって区切るんやろ…endオプションでつなげるんかな…

 

print(i , end = " ")

 

これでいけるやんと思って提出前の動作確認したら、wrong answerって言われた…そうか…これやと最後にも半角の空白が入るからあかんやなと思って、こう書いてみた。

 

for i in range(x, y) #x,yは任意の数字
    if 条件式: #最後以外はこっち

        print(i , end = " ")
    else: #最後だけ
        print(i)

 

う、うんこみたいなコードが出来てしまった…。これはさすがにまずいでぇと思ったけど、スキルチェックって時間が決まってて、早く出さんとあかんから、とりあえずこれで提出した。

さすがにこんな書き方はまずいと思ったから調べてみたら、なんかリストに1回結果を入れて、それを半角空白でつなぐ方法があるらしい。多分こう書けばよかったんやろな。

 

list1 = [str(i) for i in range(x,y)] #x,yは任意の数字
print(" ".join(i))

 

さっきよりはきれいになった。よかったぁ、ちょっと嬉しい。1行目でstr()ってしてるのは、半角空白でつなげるには文字列じゃないとあかんから。