pythonでは、
if __name__ == "__main__":
という1行が頻繁に使われるみたいです。
なかなか解りやすい説明に行き着きませんでした。
https://prograshi.com/language/python/what-is-if__name__main__/
上のurlの有り難いページには、初っ端に、
「ファイルをimportしたときに、if以下は実行しない」
と書いてありました。早くそれを言えよ。って気分です。
門前の小僧、教を読む式人間には、理解はあとでいい。
どう使うかが知りたい。論理はあとでいいのです。
"有段者"は、理解が進むと早い、と勘違いしやすい???
pythonでは、過去や直前の遺産を流用するため
importということを盛んにするみたいです。
osのコマンドも使えますし、pythonのプログラムファイルも
使えるようです。
以下2つがtest15.pyだとして、
#!/usr/bin/env python3
def hello():
print("hello world")
hello()
#if __name__ == "__main__":
# hello()
#!/usr/bin/env python3
def hello():
print("hello world")
if __name__ == "__main__":
hello()
以下のtest16.pyを実行すると、
#!/usr/bin/env python3
import test15
print(test15)
test15.pyの上のほうのコードでは、
Hello Worldが表示され、
test15.pyの下のほうだと、
何も表示されないということです。
現に実行してみたら、そうなりました。
どうして、こういう機能があるか、
と想像すると、プログラムには、広範に
流用可能な部分と、そのプログラムの
特異的処理があって、そこを区分けする
ための機能なんではないか、などと、
感じています。
「ファイルをimportしたときに、if以下は実行しない」
の言葉は、この事を如実に表しているように思いました。
前課題の2つのリストの同位要素の数を掛け算し、
そのあと総和を出す、range() 、len()の
関数を使って---の問題は、一時的に諦めることに
しました。くやしいです。zip()を使ったりしての
違うやり方なら、同じことができたので、
先に向かうことにしました。