Python入門③_制御構文を理解する(for文)

python Python
python
スポンサーリンク

バオウです。

今回から急にプログラミングっぽくなります。

今回はプログラムの基本である’ループ’

について勉強したいと思います。基本的事項になる

のですが、プログラミングの要といっても過言

ではないでしょう。


まずは復習を兼ねて前回使ったprint文を

実行してみましょう。spyderを立ち上げて

以下の文を入力してみてください。ここで

重要なのは自分で文字を打ち込んでみる事です。

 

spyderの立ち上げ方を忘れた場合はこちら

 

プログラムにおいて肝心なのは頭で理解する事

に加えて実際に自分で書いてみる事です。

(だからといって写経はおすすめしません笑)

◆test_01.py

実行結果 : test

 

testという文字列が表示されていればOKです。

では、これを複数回表示するにはどうすれば

良いでしょうか。実はこれでもOKなんです。

プログラムを修正して実行してみてください。

 

 

testの文字列が2回表示されましたか?

表示されたなら正解です。

でもこれって、同じ処理を100回するときは

100回コピペしないといけませんよね。

それってプログラムらしくないというか、

別に人間でもできるじゃんって思ってしまいます。

 

そこでプログラムらしい記述方法の登場です。

もしかしたらご存知の方もいらっしゃるかも

しれませんね。今回はfor文と呼ばれるものを

使用してみたいと思います。

 

と、その前に、pythonにおけるループ処理は

リストに対して実行される事が多い為、

まずはリストについて勉強してみたいと思います。

 

リストについては各種説明がありますが、

こちらのサイトが分かりやすく解説してくださって

います。

 

→listの使い方と使えるメソッドまとめ

→配列基礎はこれで完璧!便利なメソッド多数紹介

 

◯リストとは?


リストとは”一覧(リスト)となっているデータ型を

扱う為の型”を指します。良く用いられる例えが

出席簿です。

出席簿に『’taro’, ‘jiro’, ‘saburo’』といった複数の

名前があるとします。これらをまとめて保持する

為の型がリスト型です。そこに新しい値として

‘hanako’を任意の場所に追加したり、’saburo’を

リストから除外する事も可能です。

 

◯リストのデータの作り方


リストは半角の角カッコ'[ ]’の中に、コンマ’ , ‘区切りで

中身(要素)を並べる事で宣言します。

例として先程の出席簿をリストとして宣言してみましょう。

実行結果: [‘taro’, ‘jiro’, ‘saburo’]

 

リストの中に入れる値はどのような型でもかまいません。

1つのリストの中に複数(例えば文字列と数字等)を

含ませる事も可能です。試しに何かリストを作って

入れてみてください。

 

◯リストのデータの取り出し方


リスト内のデータにアクセスする為には

『リストの要素の何番目か』を指定します。

これは具体的に実行してみた方が分かりやすい

と思いますので、先程作成したmeiboに対して

以下の文を実行してみてください。

実行結果:’taro’, ‘jiro’, ‘saburo’

 

記載どおりの結果が得られたでしょうか。

この例から分かるように、リストの要素は0から数え始めます。

これを念頭に置いておいてください。

ちなみにこの要素番号の事をインデックス番号

といいます。リストのインデックスは0から開始

する事を忘れる事が、なれないうちはあるかと

思いますので注意が必要です。

インデックスに関して理解し辛い方は以下リンクに

概念を図示してくれているので、見てみてください。

 

→Pythonのリストの長さ(要素の数)を確認する方法まとめ

 

◯リストのデータをまとめて処理するforループ


おまたせしました。これからはfor ループについて説明します。

forループはリストに代表されるシーケンスの全ての

要素に処理を適用するという制御です。シーケンス

に関しては難しく聞こえますが、一つのデータの中に

複数のデータを持っているものとして捉えていればOKです。

 

では、for 文を使用して、meibo内の要素を表示してみましょう。

まずは以下を実行…

さてさて結果はどうなりましたか?恐らくtaro, jiro, saburoが

表示された事と思います。

 

ここでfor 文の使い方についてざっくりと説明しますと、

forの後ろに『リストの各要素を格納する変数name』

用意され、その後ろのinに続いて、ループの対象となる

リスト: meiboが記述されています。次の行には具体的に

処理を記述するブロックが続きます(今回はprint文)

 

どういった動きをするか、もう少し簡潔に整理してみましょう。

  1. meiboの0番目の要素’taro’を取り出し, 変数nameに格納。
  2. コードブロックに記載された処理(print文)を実行。
  3. meiboの1番目の要素’jiro’を取り出し, 変数nameに格納。
  4. コードブロックに記載された処理(print文)を実行。
  5. meiboの2番目の要素’saburo’を取り出し, 変数nameに格納。
  6. コードブロックに記載された処理(print文)を実行。
  7. リストの最後の要素までループ処理を回したので終了

 

for 文を使う事で、リストの要素を前から順番に取り出していき、

その取り出した値に対してコードブロックでの処理を適用します。

同じ処理はリストの全ての要素に対して実行する事が可能です。

 

◯ループの打ち切り処理について


for 文を使えばリストの全ての要素に対して処理を実行可能である

という点は説明しました。とはいえ、処理を実行されては困る局面

もきっと存在するでしょう。例えば、ある特定の値を見つけた場合

は処理を中断したい場合にはどうすれば良いでしょうか。

 

その要望を実現する為に、Pythonにはbreakと呼ばれる

命令が存在します。

 

◯breakで処理を中断する

for 文に限らず(今回はfor文しか紹介していませんが)、ループを

回す必要がなくなる場面に出くわす事があります。そんなときに

ループの処理を打ち切るのがbreakと呼ばれる命令です。

 

例えば先程のmeiboに対して、’jiro’を見つけた場合にprint文を

打ち消したい!といった場合には以下のように記述します。

 

さて実行結果はどうなりましたか?ちゃんとjiroを出力した所で

for 文が打ち切られたでしょう。(=saburoが表示されていない)

ここで見慣れない構文のifが登場していますが、次回以降に

説明致します。どうしても待ちきれない人は以下のリンクを

参照してください。要するに条件分岐を指定しています。

→基本から応用まで!if文の書き方総まとめ

 

break文での処理の打ち切りを理解できたらループ処理に

関する基本的な部分は理解できたと言えるでしょう。

 

for 文を用いれば、リスト内の要素に対して一括処理が

可能なので便利ですよねー。これぞプログラミングって

感じで動作してくれるしかっこいいです。

ループ処理に加えて、条件分岐を完璧に理解できれば

pythonプログラムを駆使できる事間違いなしでしょう!

 

ちょっと長くなったのでこの辺で。

 

次回以降をお楽しみに!

 

by バオウ\(^o^)/

 




Python
スポンサーリンク
バオウをフォローする
マイナーなマイナー(Minor&Minner)

コメント

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