pythonの改行で遊ぶ

誰得ネタ

以下のコードを用いて改行できるタイミングを考える

import numpy as np
a = 1+2+3+4
b = np.array(a)
print(a,b)

pythonは変数名や関数名を分断する形でなければ、基本的にバックスラッシュで改行が可能。

import\
numpy\
as\
np

a = 1+2\
    +3+4

b = np.\
    array\
(a)

print\
(a,b)

かなり自由に改行することができる。
バックスラッシュを用いて改行するときは、二行目以降のインデントを気にする必要はない。

変数名などを分断するとさすがにダメ。

# できない
b = np.arr\
ay(a)


括弧内の改行は、バックスラッシュが無くてもよい

import numpy as np
a = 1+2+3+4

# 括弧内は改行できる
b = np.array(
        a
    )

# 括弧内の改行はバックスラッシュ無しでよい
print(
    a
    ,
    b
)

他の言語のように、括弧内を改行で開くことができる。
この時も、改行以降のインデントは気にしなくてよい。

バックスラッシュで改行できるタイミングなら大丈夫なので、以下のような書き方もできる。

import numpy as np
# 改行前
print(np.arange(10))

# 改行後
print(
np
.
arange
(
10
)
)
# 改行前
a = [i+2 for i in range(10)]

# 改行後
a = [
    i+2
    for
    i
    in
    range
    (10)
]

もちろん、インデックスの括弧も同じ

a = [1,2,3,4,5]
b = a[
0
:
2
]

改行なんてしたくない、全部一行だ!って人はセミコロンを使えばよい。

import numpy as np;a = 1+2+3+4;b = np.array(a);print(a,b)