KNIMEST’s diary

KNIME使いがPythonも使いたくて勉強中

【Python学習帳】019_制御構造

初学者を対象としている京都大学の無料Python教材の学習中です。
「プログラミング演習 Python 2021」
Version2021_10_08_01.pdf

hdl.handle.net

CC-BY-NC-NDライセンスに従って引用します。

前回で第4章を終えました。

knimest.hatenablog.com

今回は第5章。制御構造を学びます。

プログラムの実行を制御する以下の方法を学びます.

  1. for 文, while 文による繰り返し処理と range() 関数
  2. if 文による分岐
  3. try 文によるエラー処理

 

また,これに関連して以下も学びます

  1. 条件式の書き方
  2. input() 関数によるキーボードからの入力
  3. Python の数学関数
  4. 文字出力におけるフォーマット指定

今の段階で細かなことをすべて覚えるのではなく,「何ができるのか」を知ること と,実際に書いてみることを体験する,と割り切って学習してください.

と書いてあります。今回は深追いを避けて、次章以降で実際に使って理解を深めていくように考えられているようです。

5.2 for 文による繰り返し処理

プログラミングの目的の一つは人が手作業で行うことが難しいぐらいの作業を繰

り返すことの自動化です.for 文はこのような繰り返しをプログラミングする重要

な方法です.

ここでは,for 文と range() 関数を用いて繰り返しを自動化することを学びます.

ということで、

演習 5-1 平方根を求めるプログラムへの for 文の適用

プログラム 5-1 を作成し,実行してください.

平方根を求めるニュートン法については前に学びました。

knimest.hatenablog.com

教材にある通りにIDLE Editorを使ってp5-1.pyファイルを作成し、Run Moduleを実行した結果を示します。

Tipsとして紹介されていましたが、IDLEにおいて編集を楽にするショートカットキーとして

Ctrl キーを押しながら ] キーを押す(Ctrl-]と表記します)一括して字下げできます.

字下げってスぺースキーを4回押して入力してました…。

逆にCtrl キーを押しながら [ キーを押す(Ctrl-[と表記)と字下げと逆になりますね。

これは便利。

でもつい、テキストエディタでCtrl-]など実行してしまい何度か苦笑いしています。IDLE エディタでは使えるTipsということで。

 

さて、for文の働きなどは課題5-2などで学ぶのですが、ブロックというのが繰り返し実行の制御に重要です。

 

複数行のプログラムを一括して扱うブロックはプログラミングでの重要な考え方で す.

  • Python ではブロックを「同じ深さの字下げ」で表記します.これは Python の 特徴の一つです.

  • ブロックを要求する for などの文の行末はコロン(:)で終わります.
  • Python のプログラムでは字下げが重要な意味をもつため,空白 4 文字など統

一した記法が望まれます.

  • IDLE Editor では for 文などブロックを伴う行を入力すると続く行を自動的に

字下げしてくれます.

  • 字下げに全角の空白を入れてしまうとエラーになります.見た目に分かりにくい

ので注意してください.また TAB キーはエディタの設定にもよりますが,TAB

コードがそのまま入力される場合もエラーになります.

  • 他の言語では例えば C ではブロックは { } で囲みます.他の言語に慣れた人

は記法に注意が必要です

上記の記法、しっかり守らないといけないです。
課題でも扱っていますが、コロン(:)を間違えてセミコロンにしたり、そもそも忘れたりはありがちなミスです。

字下げすなわちインデントも上記の通り統一した記法を徹底しないと

教材の17章にある通り

unindent does not match outer indentation level

unexpected indent

などのエラーが出てまごつくことになりますね。

 

さて、

for 文内の処理を打ち切ったり,特定の繰り返しでは処理をスキップしたりするために break と continue という命令が用意されています.

● break: for 文の繰り返しから脱出します.
● continue: for 文の繰り返しのブロックの残りの部分をスキップして次の繰り返しに移ります.
これらは,後述の if 文での条件分岐と組み合わせて用いられます.

下記の通り体験し、演習ではその実行結果をソースコードを用いて説明しました。

今回はここまでとして、次回もfor文の学習が続きます。

knimest.hatenablog.com