【基本を学ぶ3: 超初学者向け】Pythonプログラミング入門

Pythonプログラミング入門


このシリーズは
Pythonプログラミングを学びたい初学者向けに執筆しています。
第1章はこちらの記事ですので
初めから勉強したい方は順番にご覧になることを推奨します。↓


悩むペン銀

Pythonに何ができるのか具体的に知りたい

Pythonの基本構文を学んで見たい

Pythonを実際にコーディングして学習したい

本記事はこういった疑問に答えていきます。



さて、前回の記事ではPythonの基本構文について勉強しました。


本記事ではこの学んだ構文を利用し
いよいよ条件分岐ループ処理の学習に入っていきましょう。


本記事を通して学ぶことで
より”プログラミングっぽい事”を体感できるはずです。




条件分岐


条件分岐とは書いて字のごとく
ある条件毎にプログラムの動作を変更する事を表しています。


少し分かりにくいですか?


簡単な例を上げましょう。


貴方がプログラムしたロボットが道を歩いていることを想像してください。
ロボットは買い物を頼まれスーパーへ向かっています。
道は一本道です。すると目の前に段ボール箱が積まれていました。
スーパーへ向かうにはこの道を通らなくてはなりません。
そして偶然にもその道は十分広かったので迂回すれば通れそうです。

ここでロボットには道を通るのに簡単に3つの選択肢があります。
① 段ボールの上を飛び越えて道を進む
② 段ボールを手で押しどけて進む
③ 段ボールを避けて迂回して道を進む


簡単に3つ道を通り方法を書きましたが
他にもたくさんの方法があるはずです。


条件分岐とは
こういったある状況に出くわしたとき、プログラムがどのように動作するのか
予め決めておくことを指しています。


つまり
貴方がロボットのプログラムを行う際、もし仮に道に何か障害物があった場合
①の選択肢を実行するのか。はたまた②か③を実行するのか
その条件に合わせてロボットの動作を変えるという事です。


Pythonでは簡単にこの条件分岐を実装することが可能で
いくつかの数学の論理演算子を提供しています。

ある要素同士が

  • 要素が等しい時: x == y

  • 要素が等しくない時: x != y


  • ある要素に比べ

  • ある要素が小さい時: x < y

  • ある要素が小さいもしくは等しい時: x <= y

  • ある要素が大きい時: x > y

  • ある要素が大きいもしくは等しい時: x >= y
  • これらの演算子はPythonのプログラミングにおいていくつかの場面
    例えばif文やloopでよく使用されます。


    ここでのif文はifというPythonのkeywordを使用し
    条件分岐を実現する書き方の事です。


    百聞一見に如かずですね
    ターミナルを起動し、Pythonを実行。
    以下のコードを入力し確認してみましょう。

    (>>>はPythonの対話環境を表しています。入力する必要はありません。)
    ( 3行目で:(コロン)を入力した後、エンターキーを押すとif文のブロックに入れます。)

    >>> x = 30
    >>> y = 55
    >>> if x < y:
    ...     print("yはxより大きい")
    ...      
    'yはxより大きい'


    Pythonのif文では if 条件 : (コロン)と言う書き方が決まりです。
    if文ではxがyより小さいのか否かTrueかFalseを返します。
    もしTrueであればprint()関数が実行され、もしFalseであれば無視されます。


    ここでprint()関数の左側にインデント(空白)がある事に気付けた貴方は
    なかなかセンスがありますね。
    Pythonはプログラムを綺麗に保つ言語としても有名で
    これはコードを段落で区切ると言う決まりによって実現されています。
    上記の例では

    >>> if x < y:
    ...     print("yはxより大きい")

    ここまでがひと塊りとして動作します。


    通常if文ではifの先頭である「i」の文字から4つもしくは2つの空白
    を挟んで段落を区別
    します。(4つの空白が良く使われます。また、どちらの空白を使用するにもインデント方法は1つに統一することが決まりです。)
    これのインデントが正しくされない場合、エラーが発生するため注意してください。


    前述した例では変数xの値が変数yの値より小さいので
    print()関数が実行されるはずです。


    2つ以上の条件分岐

    プログラムを書いていると
    更に条件を付け動作を分岐させたいと思うでしょう。
    そこでelifを使用します。
    以下のコードを入力し、実行してください。

    >>> x = 30
    >>> y = 50
    >>> if x > y:
    ...     print("xはyより大きい") 
    ... elif x < y:
    ...     print("xはyより小さい")
    ...
    'xはyより小さい'

    elifはelif 条件 :(コロン)という書き方をします。
    前段のifがFalseであった場合、次の行に書かれたelifのブロックが実行される流れとなります。
    この例では変数xの値は変数yの値に比べ小さいため、前段のif文は実行されずelif文のブロックprint()関数が実行されます。


    どの条件にも当てはまらない場合

    これまで学んだifelifの条件がどれも当てはまらない場合も考えられます。
    この場合、elseがそのほか全ての条件に対応する事が可能です。
    例を見てみましょう。

    >>> x = 111
    >>> y = 4
    >>> if y > x:
    ...     print("yはxより大きい")
    ... elif x == y:
    ...     print("xとyの値は等しい")
    ... else:
    ...     print("上記どちらの条件にも当てはまらない")
    ... 
    '上記どちらの条件にも当てはまらない'

    このように変数xの値は変数yの値より大きいため
    ifとelifのブロックに書かれたprint()関数はそれぞれ無視され、
    最後に残ったelseブロックのprint()関数が実行されます。


    実際に自分の手を動かして確認してくださいね。
    繰り返しになりますがコピペでは学習速度が低下するため効率が悪いです。
    長い目で見て、最短ルートを突っ走りましょう!


    ループ処理



    コンピュータは同じ動作を繰り返すことがとても得意です。

    Pythonではこれをコーディングで実現するため以下2つの構文が用意されています。

  • whileループ

  • forループ


  • whileループ



    このcommandはある条件がTrueである期間決められた動作を繰り返す
    ものです。構文はwhile 条件 :(コロン) と定義します。
    またif文の時と同じように、インデント(空白)を入れることでループする領域を決定します


    こちらもコードを実際に見た方が分かりやすいため、
    実際にプログラムに使用する際の実例を示します。

    >>> count = 1
    >>> while count < 6:
    ...     print(count)
    ...     count += 1
    ... else:
    ...     print("Loop is over")
    ...
    1
    2
    3
    4
    5
    "Loop is over"

    感の良い方はすでに何が起きているのか分かるかも知れません。
    この例ではまず変数countに1を指定して用意し、プログラムがループされる毎にcountをインクリメント(1を足し算)しています。


    whileの条件ではcountが6より小さい場合がTrueとなり、
    ループが繰り返されcountが6以上の値となると条件がFalseに変わります。


    条件がFalseに変わった時点で次のループは実行されず、
    if文同様ループのブロックから抜け出し、
    次に続くelseのブロックであるprint()関数が実行されています。



    forループ


    構文はfor 条件 :(コロン)です。if文やwhile文と同じと考えて大丈夫ですね。
    このfor 文はより柔軟な動作を実現することができます。
    例えば、前回の記事で学んだリストや辞書、タプルなどある一連のデータを操作することが可能です。
    コードを見て実例を確認していきましょう。

    >>> fruits = ["apple", "peach", "meion"]
    >>> for fruit in fruits:
    ...     print(fruit)
    ...
    "apple"
    "peach"
    "meion"

    このようにリストfruitsに含まれる要素が左から変数fruitに代入され
    その要素が尽きるまで、ブロック内のprint()関数が実行されています。


    さらに、ここが面白いのですが
    これまで学んだif文を使って条件分岐させることも実現できます。

    >>> fruits = ["apple", "peach", "meion", "banana"]
    >>> for fruit in fruits:
    ...     if fruit == "meion":
    ...         print("My favorite fruit is {}".format(fruit))
    ...
    "My favorite fruit is meion"
    

    このようにリストの要素の中から
    条件に該当する要素を抜き出すことが可能です。
    このループ処理には様々な応用方法があり
    アイディア次第で多種多様の処理を行うことができるでしょう。



    まとめ


    いかがだったでしょうか?
    今回も少しヘビーな内容だったためここ辺にしておきましょう。


    条件分岐とループ処理はプログラムを書く上で本当によく使う構文です。
    というか使わないと言う事はほぼ無いでしょう。


    初めてみるこういった処理は覚えるのが大変そうに感じますが
    コピペせず繰り返し自分の手で入力し
    実行結果を確認する作業を続けてみてください。


    知らず知らずのうちに思い出さずとも
    自然に使いこなせるようになります。


    千里の道も一歩からです。
    焦る事なくゆっくり体に染み込ませていきましょう。
    何度でも言いますが楽しむことが大切です
    疲れたら適度に休憩をとり、自分のペースで学習を続けましょう。



    今回は以上です。
    ではでは



    続編はこちら↓↓






    人気記事【初学者必見】効率的なプログラミング勉強方法を紹介します







    このエントリーをはてなブックマークに追加



    data-ad-format="rectangle" data-ad-format="rectangle"

    コメントを残す