大人のための『夢を叶える学校』

「夢は叶えるもの!」険しい道でも突き進めば、その先に必ず光が見える。実現した経緯や飲食店経営・起業の仕方などについて投稿しています

Pythonプログラミング楽しく学ぶ実践記:中級編4日目

(✿✪‿✪。)ノコンチャ♡

プログラミングを学習して、中級編も4日目になりました。

初級編では、

プログラミングの基礎知識を学びました。

中級編に入ってからは、

簡単なプログラム思考に慣れるため、

プログラムを記述して実行してみました。

 

今回からは、

繰り返し処理について学んでいきます。

 

f:id:success-life:20210903184028p:plain

繰り返し文①

 

繰り返し文

繰り返し文とは、

同じ処理を繰り返し実行させる文のことです。

英語で「輪」を意味する『ループ(loop)』とも呼ばれています。

これによって、

かなりの効率を上げることができます。

 

私たちが使っているプログラムの殆ども、

【ユーザーが入力】➡【結果を出力】

のループ構造になっています。

 

繰り返しとリスト

繰り返し処理を学ぶ上で、

欠かせないのが『リスト』という型です。

リストには連続したデータを記憶することができます。

 

それでは、

はじめに「リストの作り方」から学んでいきましょう。

 

複数のデータを記憶

リストは中に複数の値を入れられる型です。

記述の仕方は以下の通りです。

 

  変数= 値A,値B,値C,・・・

 

このように全体を『角カッコ([ ])』で囲み、

値を『カンマ( , )』で区切って記述します。

個々の値を『要素』と呼び、

要素は「数値」でも「文字列」でもいいです。

 

リスト内の要素を使用するには、

変数名の後に角カッコで囲んだ「数値」を指定します。

  変数=[ 数値 ]

この数値を『インデックス(添え字)』と呼びます。

ここで注意したいことは、

このインデックスは「」から始まることです。

 

文章で解説しても分かりずらいので、

実際にリストを作って利用してみましょう。

 

リストの表示

リストの中に、

「日~土」という7つの曜日の文字列を記憶させ、

その中の1つ目と3つ目の要素を表示させてみましょう。

 

  week=['','','','','','','']

  print(week[0])

  print(week[3])

 

f:id:success-life:20210905145102p:plain

リスト表示①

 

これを実行すると、

f:id:success-life:20210905145152p:plain

リスト表示②

前にも解説してた通り、

リスト内の要素は0番目から数え始めるので、

要素0は「日」、要素3は「水」となります。

 

リストの要素を書き替える

リストの要素「日」を「Sunday」に書き替えて表示させてみます。

 

  week=['','','','','','','']

  week[0]='Sunday'

  print(week)

 

f:id:success-life:20210905151301p:plain

要素の書き替え①

実行結果は、

f:id:success-life:20210905151344p:plain

要素の書き替え②

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行目】「曜日」を付け加えて表示する処理を繰り返す。

ということです。

 

f:id:success-life:20210905205524p:plain

for 文①

 

実行すると、

f:id:success-life:20210905205611p:plain

for 文②

これは、

リスト内の文字列を抜き出して処理を繰り返すプログラムです。

 

range 関数

次に『 range(レンジ)関数』を使った繰り返し処理を学びます。

例えば、

繰り返し回数が決まっている場合に、

range 関数を組み合わせることでプログラムすることができます。

 

  for変数inrange(整数):

  ␣␣␣␣繰り返したい処理

 

range 関数の引数は整数であり、

  から引数-1までの整数を順次返します。

つまり、

range(5) と記述すると、

「0」「1」「2」「3」「4」が戻り値となります。

 

ちょっとわかりずらくなってきたので、

実際にプログラムを記述してみましょう。

 

同じ文字列を10回表示させるプログラム

「はじめまして!」という文字を10回繰り返し表示させてみましょう。

 

  fortextinrange(10):

  ␣␣␣␣print('はじめまして!')

 

f:id:success-life:20210905213041p:plain

range 関数①

 

実行してみると、

f:id:success-life:20210905213120p:plain

range 関数②

このように、

文字列を表示する処理が10回繰り返されました。

 

もう少し range 関数の引数について理解を深めましょう。

先程のプログラム内の『 range(10) 』の戻り値は、

順次『変数 text 』に返されています。

そこを理解するため、

表示させる処理に『変数 text 』を回数として追加してみます。

 

  fortextinrange(10):

  ␣␣␣␣print(text,'回目のはじめまして!')

f:id:success-life:20210905214230p:plain

range 関数③

 

これを実行すると、

f:id:success-life:20210905214322p:plain

range 関数④


このように、

range(10) は「0~9」を返していることが理解できると思います。

つまり単に、

range 関数の引数の「数字」は、繰り返し回数だと理解してください。

 

range 関数に2つの引数

この range 関数で「0」から数え始めるのがわかりずらい、

と思われている人もいると思います。

そこで、

「1」から数え始めるようにしたい場合は、

引数を2つ使って range 関数を記述することができます。

しかし注意したいことは、

『終了値直前の整数まで』というルールは有効です。

  range(開始値,終了値)

range(1,6) と記述すれば、

「1」「2」「3」「4」「5」が返ってくることになります。

 

f:id:success-life:20210905220439p:plain

range 関数⑤

 

実行すると、

f:id:success-life:20210905220515p:plain

range 関数⑥

 

さいごに

いかがだったでしょうか?

今回は少し長くなってしまいましたが、

理解してもらえたと思っています。

 

何事においても言えることですが、

「慣れること」が最大の武器です。

 

この場合はどうなるの? って疑問が湧いたら、

プログラムを記述して実行してみることが、

理解度を向上する方法でもあります。

 

『覚える』ではなく『慣れること』が大切です。

これからも一緒に頑張って学んでいきましょう。

 

次回は、

2つの「繰り返し文」を組み合わせたり、

比較演算子を使って条件分岐を繰り返したりと、

実践を交えながら進めたいと思っています。

 

ではまた、お会いしましょう。

 

   ☆ ☆ ☆  中級編スケジュール  ☆ ☆ ☆

f:id:success-life:20210908235807p:plain

中級編1日目

f:id:success-life:20210908235833p:plain

中級編2日目

f:id:success-life:20210908235907p:plain

中級編3日目

f:id:success-life:20210908235929p:plain

中級編4日目

f:id:success-life:20210908235951p:plain

中級編5日目