エルチカなのに、Pythonプログラムの記述に意味が分からないものがある

 初心者向けの電子工作本、ラズパイのガイド本とかの、最初のレッスンは「LEDを繋げて光らせよう!」ですよね。
 私も、本やネットのプログラムを参考に、動画のような動き(物理ボタンで開始停止、ctrl+cで停止)をするプログラムを作りました。

 このカテゴリー「Python独学 その1」では、このプログラムを作るときに私が調べたことや、感じたことを記事にしています。

通称 エルチカ

 趣味で電気工作をやろうと思い、私みたいにラズパイを買ってしまった方なら、本を見ながらプログラムを打ちこめば、赤色のLEDを一個光らせるのも、数秒おきに点滅させるのも、RGB LEDをPWM制御で色んな色に光らせるのも、物理ボタンで開始したり止めたりするのも、特に難しいものではないと思います。

 多分、配線とかのハード的なものよりも、本に書かれているPythonのプログラム記述の中でも、主にループに関する部分が、いろんな本、サイトで微妙に違うのに戸惑うかと思います。
 というか、私はそこにモヤモヤを感じながら、LEDを光らせていました。 

・for in : の構文でループ 3回とか単純なものは分かる
・while True: の構文でループ 無限ループさせる必要性あるの?
・if name == ‘main’: の構文の意味、必要性が??
・try :
 except KeyboardInterrupt: Thonnyで停止させればいいのでは??
・return(0) の意味は??
・sys.exit(main()) の意味は??

 初心者向きの本は、「for inで何回か繰り返して終了」のプログラム。
 アマゾンの電子工作キットのレッスンPDFには、if name に続く構文がありました。
 ネットで押しボタンのチャタリングを調べたときは、sys.exit(main()) という記述あり。

 初心者向きのプログラムなら、難しい記述省いて、for in だけで良いと思います。
 物理ボタンの入力待ちとかで、無限ループは必要ですが、ボタンを押して必要な処理をしたら、そのまま終了するか、数回繰り返すようなプログラムで良いと思います。

 それなのに、 なぜ意味不明な構文、というか定型文みたいな、if name == ‘main’: のような記述があるのか?

 本来のプログラムというか、プロが作る実践的なプログラムは、より上の階層のプログラムから呼び出して使うことを想定しているんですよね。
 「プログラムの冒頭で import 何々 で宣言して」、色んな制御や結果が出た際に、では「LEDを光らせたいから、LEDを光らすプログラムを実行する」という流れだと思うのです。

 なので、初心者にはよく分からない構文が、ネットのプログラムには見られるんですよね。
 ということで、それぞれの簡単な説明は、別の記事で書きたいと思います。

無駄に難しいプログラムでエルチカ

 冒頭の動画のプログラムです。このカテゴリー「Python独学 その1」は、このプログラムの説明となります。

 記事の参考のためというか、私が独学中に遭遇した無限ループやプログラムの基本的?な記述をごちゃ混ぜにしたものですので、実践で役に立つかは不明です。
 私と同じように、独学で色んなサイトの情報やプログラムを見たときに、「なんじゃコレは??」と感じた時の手助けになればうれしいです。
 このプログラムを見て、特に難しくもないし、常識じゃんと思った方は、たぶん私のサイトとは縁がないかと思いますw

コメント

タイトルとURLをコピーしました