(✿✪‿✪。)ノコンチャ♡
プログラミングを学習して、中級編も4日目になりました。
初級編では、
プログラミングの基礎知識を学びました。
中級編に入ってからは、
簡単なプログラム思考に慣れるため、
プログラムを記述して実行してみました。
今回からは、
繰り返し処理について学んでいきます。
繰り返し文
繰り返し文とは、
同じ処理を繰り返し実行させる文のことです。
英語で「輪」を意味する『ループ(loop)』とも呼ばれています。
これによって、
かなりの効率を上げることができます。
私たちが使っているプログラムの殆ども、
【ユーザーが入力】➡【結果を出力】
のループ構造になっています。
繰り返しとリスト
繰り返し処理を学ぶ上で、
欠かせないのが『リスト』という型です。
リストには連続したデータを記憶することができます。
それでは、
はじめに「リストの作り方」から学んでいきましょう。
複数のデータを記憶
リストは中に複数の値を入れられる型です。
記述の仕方は以下の通りです。
変数=[ 値A,値B,値C,・・・]
このように全体を『角カッコ([ ])』で囲み、
値を『カンマ( , )』で区切って記述します。
個々の値を『要素』と呼び、
要素は「数値」でも「文字列」でもいいです。
リスト内の要素を使用するには、
変数名の後に角カッコで囲んだ「数値」を指定します。
変数=[ 数値 ]
この数値を『インデックス(添え字)』と呼びます。
ここで注意したいことは、
このインデックスは「0」から始まることです。
文章で解説しても分かりずらいので、
実際にリストを作って利用してみましょう。
リストの表示
リストの中に、
「日~土」という7つの曜日の文字列を記憶させ、
その中の1つ目と3つ目の要素を表示させてみましょう。
week=['日','月','火','水','木','金','土']
print(week[0])
print(week[3])
これを実行すると、
前にも解説してた通り、
リスト内の要素は0番目から数え始めるので、
要素0は「日」、要素3は「水」となります。
リストの要素を書き替える
リストの要素「日」を「Sunday」に書き替えて表示させてみます。
week=['日','月','火','水','木','金','土']
week[0]='Sunday'
print(week)
実行結果は、
0番目の要素が書き替えられ、
リスト全体が表示されたのが確認できたと思います。
次に、
リストを操作するためのメソッドをいくつか紹介しておきます。
リスト型の操作(例) | 処理の内容 |
リスト.append(要素) | リストに要素を追加する |
del リスト[インデックス] | 指定した要素を削除する |
リスト.remove(値) | リストから値と一致する最初の要素を取り除く |
リスト.pop() | リストの最後の要素を取り除き、その値を返す |
変更できないリスト
リストとよく似た『タプル(tuple)』という型があります。
タプルとリストの違いは、
タプルを作成した後で要素の変更ができない点です。
リストを作成する場合は「角カッコ」で囲みましたが、
タプルを作成する場合は「丸カッコ()」で囲みます。
変数=(要素a,要素b,・・・)
タプル内の要素を指定して参照する場合は、
リスト同様、
角カッコでインデックスを指定します。
リストの一部参照
先程インデックスを指定して、
要素を参照する方法を学びました。
では、
リスト内の要素の中から、
「ココからココまでの要素」
を参照したい場合の指定方法を学んでいきましょう。
リスト[開始インデックス:終了インデックス]
このように記述すると、
「開始インデックス」から「終了インデックスの直前」まで
の要素を指定してリストにすることができます。
これを『スライス』と呼びます。
for 文
今回から「繰り返し文」を学んでいくことでした。
しかし、
まだ繰り返しのプログラムに触れていません。
これからです!
この『 for 』が「~の間」という部分です。
つまり、
~の間、処理を繰り返す
というプログラムを記述できます。
前述のスライスと for 文を組み合わせて、
繰り返しの処理をプログラミングしていきましょう。
前項の「曜日のリスト」から勤務する曜日を抜き出し、
表示させるプログラムを記述してみます。
week=['日','月','火','水','木','金','土']
for kinmu in =week[1:6]:
␣␣␣␣print(kinmu,'曜日')
この記述されたプログラムの意味は、
【1行目】リスト week に曜日の要素を記憶させます。
【2行目】そのリスト week の要素1「月」~要素6の直前「金」までを、
順次、変数 kinmu に格納します。
【3行目】「曜日」を付け加えて表示する処理を繰り返す。
ということです。
実行すると、
これは、
リスト内の文字列を抜き出して処理を繰り返すプログラムです。
range 関数
次に『 range(レンジ)関数』を使った繰り返し処理を学びます。
例えば、
繰り返し回数が決まっている場合に、
range 関数を組み合わせることでプログラムすることができます。
for␣変数␣in␣range(整数):
␣␣␣␣繰り返したい処理
range 関数の引数は整数であり、
0から引数-1までの整数を順次返します。
つまり、
range(5) と記述すると、
「0」「1」「2」「3」「4」が戻り値となります。
ちょっとわかりずらくなってきたので、
実際にプログラムを記述してみましょう。
同じ文字列を10回表示させるプログラム
「はじめまして!」という文字を10回繰り返し表示させてみましょう。
for␣text␣in␣range(10):
␣␣␣␣print('はじめまして!')
実行してみると、
このように、
文字列を表示する処理が10回繰り返されました。
もう少し range 関数の引数について理解を深めましょう。
先程のプログラム内の『 range(10) 』の戻り値は、
順次『変数 text 』に返されています。
そこを理解するため、
表示させる処理に『変数 text 』を回数として追加してみます。
for␣text␣in␣range(10):
␣␣␣␣print(text,'回目のはじめまして!')
これを実行すると、
このように、
range(10) は「0~9」を返していることが理解できると思います。
つまり単に、
range 関数の引数の「数字」は、繰り返し回数だと理解してください。
range 関数に2つの引数
この range 関数で「0」から数え始めるのがわかりずらい、
と思われている人もいると思います。
そこで、
「1」から数え始めるようにしたい場合は、
引数を2つ使って range 関数を記述することができます。
しかし注意したいことは、
『終了値直前の整数まで』というルールは有効です。
range(開始値,終了値)
range(1,6) と記述すれば、
「1」「2」「3」「4」「5」が返ってくることになります。
実行すると、
さいごに
いかがだったでしょうか?
今回は少し長くなってしまいましたが、
理解してもらえたと思っています。
何事においても言えることですが、
「慣れること」が最大の武器です。
この場合はどうなるの? って疑問が湧いたら、
プログラムを記述して実行してみることが、
理解度を向上する方法でもあります。
『覚える』ではなく『慣れること』が大切です。
これからも一緒に頑張って学んでいきましょう。
次回は、
2つの「繰り返し文」を組み合わせたり、
比較演算子を使って条件分岐を繰り返したりと、
実践を交えながら進めたいと思っています。
ではまた、お会いしましょう。
☆ ☆ ☆ 中級編スケジュール ☆ ☆ ☆