プログラムを書くときは見栄えはとても大切です。
きちんと整理しないと自分でも何のプログラムかわからなくなってしまうことがあります。
そこで、コードの見栄えをよくする方法を教えます。
スペースは一つではなく四つで
for x in l:
print(x) # 1スペース
if x == 1:
print("1!!") # 2スペース
print("")
Pythonではforやifなどを書くときfor x in l:のあとに改行してスペースを入れます。
その時、1スペースではなく、4っつスペースを入力します。
for x in l:
print(x) # 4スペース
if x == 1:
print("1!!") # 8スペース
print("")
こうする事でどこからループに入っているかなどがはっきりわかります。
2スペースは4倍して8スペースです。
わざわざ4回スペースキーを押すのがめんどくさいときはタブキーを使うといいです。
整列
a={8:4,2:7,4:1,9:3,42.53:21,61:54.22}
パっと何が何に対応しているかわかりません。
こういう時は,のあとに改行します。
a={ 8 : 4,
2 : 7,
4 : 1,
9 : 3,
42.53 : 21,
61 : 54.22}
少数点、:をそろえるのもおすすめです。
こういう場合もあります。
def all_add(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18,
x19):
return x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 + x12 + x13 + x14 + x15 +
x16 + x17 + x18 + x19
エディターによりますがこのように勝手に改行されてしまいます。
Pythonは" , "の直ぐ後は改行することが許されます。
しかし、計算式の途中で改行することは許されません。
そのような時は" \ "をつかいます。
" \ "は次の改行を削除してくれます。
つまり
1+2+3\
+4+5+6
は
1+2+3+4+5+6
になります。
ついでに縦と揃えます
def all_add(x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10,
x11, x12, x13, x14, x15, x16, x17, x18, x19):
return x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 \
+ x11 + x12 + x13 + x14 + x15 + x16 + x17 + x18 + x19
逆に次のようなこともできます。
def return_one():return 1
# 1
if True:print(True)
# True
print(1);print(2)
# 1
# 2
C言語などを使った人はやったことあるかもしれませんが
;も改行を意味します。
:の後の改行も省くことができます。
しかし次はできません。
if True:print(1)
print(True)
# File "<stdin>", line 2
# print(True)
# IndentationError: unexpected indent
もしやるなら
if True:print(1);print(True)
と記述します。
型ヒントを使う
型ヒントというのは「この型を使ってほしい」、「この型が出力される」というコメントのようなものです。
以下のように記述します。
def float_add_int(a: float, b: int) -> float | int:
return a + b
変数に使うときは:で、関数に使うときは->を使います。
|を使うことで「両方とも使っていいよ」と表します。
a: int|float|list # aという変数はint型又はfloat型又はlist型
x = x + yなどはx += yに
y = 0
for x in range(10)
y = y + x
初心者がよくやることです(最初は私もやっていました)。
| 演算子 | 省略後 |
|---|---|
| + | += |
| - | -= |
| * | *= |
| / | /= |
| // | //= |
| % | %= |
| ** | **= |
| and | &= |
| or | |
| ^ | ^= |
| << | <<= |
| >> | >>= |
応用
下にとても見えにくいプログラムを用意しました。
import hmath
__Gamma_list=[676.5203681218851,-1259.1392167224028,771.32342877765313,-176.61502916214059,12.507343278686905,-0.13857109526572012,9.9843695780195716e-6,1.5056327351493116e-7,]
def Gamma(x):
if hmath.real_part(x)<0.5:
ans=hmath.pi()/(hmath.sin(hmath.pi()*x)*Gamma(1-x))
else:
y=0.99999999999980993
for i in range(len(__Gamma_list)):
y=y+__Gamma_list[i]/(x+i)
t=x+len(__Gamma_list)-1.5
ans=hmath.sqrt(hmath.tau())*t**(x - 0.5)*hmath.exp(-t)*y
return ans
整理します。
import hmath
__Gamma_list : list = [
676.5203681218851 ,
-1259.1392167224028 ,
771.32342877765313 ,
-176.61502916214059 ,
12.507343278686905 ,
-0.13857109526572012 ,
9.9843695780195716e-6,
1.5056327351493116e-7,
]
def Gamma(x : int | float | complex) -> int | float | complex:
if hmath.real_part(x) < 0.5:
ans = hmath.pi() / (hmath.sin(hmath.pi() * x) * Gamma(1 - x))
else:
y = 0.99999999999980993
for (i, Gamma_v) in enumerate(__Gamma_list):
y += Gamma_v / (x + i)
t = x + len(__Gamma_list) - 1.5
ans = hmath.sqrt(hmath.tau()) * t ** (x - 0.5) * hmath.exp(-t) * y
return ans
終了。
ぜひ今回のことを活用してください