print functionの末尾
Pythonのprint() functionはデフォルトでは改行(‘\n’)で終わる。
しかし、end parameter “end =”を入れる事で好きな文字で終える事が出来る。
些細な点だが忘れていたので簡単にまとめた。
for loopを利用して色々試してみる。
ファイルで実行
ファイル”forloop.py”を作成して中身を下記の通りに記述する。
for x in (1, 3, 5, 7, 9): print(x**2) for x in [1, 3, 5, 7, 9]: print(x ** 3, end = " ") for x in "spring": print(x * 2) for x in range(1, 10, 2): print(x ** 4, end = " ") print("") for x in "summer": print(x * 3)
このファイル“forloop.py”を実行すると下記が出力される。
$ python3 floop.py 1 9 25 49 81 1 27 125 343 729 ss pp rr ii nn gg 1 81 625 2401 6561 sss uuu mmm mmm eee rrr
実行行、$ python3 floop.pyの後の
2〜6行は、最初の二乗(x**2)のループの出力。
デフォルトなので改行されて出力されている。
7行目は2つめの三乗(x**3)のループの出力。
こちらでは「end = ” ” 」を入れた事で、デフォルトの改行ではなく、各出力(プリント)の後に「” “」スペースが入る事で 一行にまとめて出力される。
この三乗の出力の最後も同様に改行では無くスペースなので、
7行目の最後、3乗の式最後729の後には改行の代わりにスペース” “となる。
その後に3つ目の式の文字*2のループの出力一つ目、ssが入り、このssの後にはデフォルトの改行(‘\n’)が入る。
それ以降は8〜12行まで値+改行が続く。
13行目は4つ目、1〜10まで1から2ずつ増やした数を4乗するループの出力。
これも出力の後にスペースを入れているので1行になる。
13行目と14行目が、2つ目のループ出力と3つ目のループ出力の間の7行目、8行目と違うのは、4つ目の式の後すぐに’print(“”)’の行を置いたこと。
この一行のお陰で、5つ目の式の文字*3のループは4つ目のループの後で改行された後、14行目から始まり、19行目まで続く。
因みにここで改行だから、と’print(“\n”)’としてしまうと、
改行を出力した後に、さらにデフォルトの改行が入って2行改行してしまうので注意。
# python3 floop.py の5つ目をprint("") => print("\n")に変えた場合の13行目以降 1 81 625 2401 6561 sss uuu mmm mmm eee rrr
余分に改行が入っているのが分かります。
出力を1行改行させたい時は空文字の出力’print(“”)’でOK。
for loopを1行にまとめた時のインデント
蛇足だが、for x in ():のループについて、:以降は改行&インデントとしなくても、一行で記述が可能。この場合、”:”とprintの一文字目”p”の間は何も無くても良いし、スペースが有っても良い。インデント以外はおおらかなイメージ。
下記はターミナルで実行したコードと出力。
>>> for x in (1, 3, 5, 7, 9):print(x**2) ... 1 9 25 49 81 >>> for x in [1, 3, 5, 7, 9]: print(x ** 3, end = " ") ... 1 27 125 343 729 >>> for x in "spring": print(x * 2) ... ss pp rr ii nn gg
プログラムはなぜ動くのか第3版
求められているからこその第3版発売でしょう。
私の様な初心者がプログラムの概要を掴むには分かり易い本。
コメント