こんにちは、ウチダです。
私は投資や仕事に役立てるためにプログラミング言語pythonを勉強しています。
いまはプログラミングスキルを高めるために、実用書の演習問題を解いています。

前回は第1章Python入門の演習を解説しました。
今回は第2章フロー制御の演習を解説します。
目次
- 1 Pythonを身につけてスキルアップしよう!
- 1.1 python学習1:ブール型の値を理解しよう
- 1.2 python学習2:ブール演算子を理解しよう
- 1.3 python学習3:ブール演算子を理解しよう
- 1.4 python学習4:ブール演算子を理解しよう
- 1.5 python学習5:比較演算子を理解しよう
- 1.6 python学習6:等値比較演算子を理解しよう
- 1.7 python学習7:条件式を理解しよう
- 1.8 python学習8:ブロックを理解しよう
- 1.9 python学習9:フロー制御を理解しよう
- 1.10 python学習10:無限ループへの対処法を理解しよう
- 1.11 python学習11:フロー制御を理解しよう
- 1.12 python学習12:range()関数を理解しよう
- 1.13 python学習13:for文とwhile文を理解しよう
- 1.14 python学習14:モジュール内の関数の呼び出し方を理解しよう
- 1.15 python学習15:関数のはたらきを理解しよう
Pythonを身につけてスキルアップしよう!

プログラミング言語Pythonはコードが非常にシンプルで、誰もが簡単にプログラムを作れます。
また、ツールも無料で取得でき、ネットにもコードが多数掲載されています。
Pythonは初心者こそおすすめのプログラミング言語なんです。
ただ、難しい実用書を読むだけでは理解も難しいですよね。
そこで演習を通して、専門語や使い方を覚えていけたらきっと楽しいと思います。
今回は第2章フロー制御を解いてきましょう!
python学習1:ブール型の値を理解しよう
'''
ブール型の値には2つありますが、
それは何ですか?
どのように書きますか?
'''
ブール型とは「はい」「いいえ」の選択肢の表現を行うものです。
ブール型はTrue(真)とFalse(偽)の2種類の値しかとれません。
クォート記号(',")をつけずに、先頭は大文字、残りは小文字で書きます。
python学習2:ブール演算子を理解しよう
'''
ブール演算子には3つありますが、それは何ですか?
'''
ブール演算子とは、ブール値を組み合わせるときに使用する演算子です。
算数では2+2など、数字同士を足し合わせるために+(演算子)を使いますよね。
同様に、ブール値(True、False)の演算子にはand、or、notを使います。
python学習3:ブール演算子を理解しよう
'''
各ブール演算子の真偽表を書きなさい
つまり、ブール値のすべての組み合わせに対して演算子を評価した表です。
'''
ブール値はTrue(真)、False(偽)の2種類があります。
ブール演算子はand、or、notの3種類があります。
これらのすべての組み合わせを評価します。


python学習4:ブール演算子を理解しよう
'''
以下の格式を評価すると何になりますか?
(5 > 4) and (3 == 5)
not (5 > 4)
(5 > 4) or (3 == 5)
not ((5 > 4) or (3 == 5))
(True and True) and (True == False)
(not False) or (not True)
'''
最後の評価結果が1つのブール値になるまで、各項の評価を行います。
例えば1つめは5>4はTrue、3==5はFalseです。
True and Falseになるので、これを評価するとFalseになります。
他も同様に評価します。

python学習5:比較演算子を理解しよう
'''
比較演算子には6種類がありますが、それは何ですか?
'''
比較演算子は2つの値を比較して、1つのブール値を返します。
数学の等号、不等号と同じですね。
- 等しい==
- 等しくない!=
- より小さい<
- より大きい>
- 以下<=
- 以上>=
比較演算子の評価結果は、与えた値に応じてTrueかFalseになります。
python学習6:等値比較演算子を理解しよう
'''
等値比較演算子と代入演算子の違いは何ですか?
'''
代入演算子=は、中学数学のx=10のように変数に値を代入するものです。
等値比較演算子==は、2つの値を比較してブール値を返します。
代入するのが=、同じ値か調べるのが==です。
python学習7:条件式を理解しよう
'''
条件式とは何ですか?
それはどこで使いますか?
'''
条件式は繰り返し処理などの自動化プログラムで、フロー制御に使う式です。
評価するとブール値になります。
例えばfor文でループ処理するとき、条件式を書くことで、処理を分岐させることも可能です。
Trueなら処理1、Falseなら処理2のように分けられます。
フロー制御のときに使用するのが条件式なのです。
python学習8:ブロックを理解しよう
'''
次のコードに含まれるブロックを3つ挙げなさい。
'''
spam = 0
if spam == 10:
print('eggs')
if spam > 5:
print('bacon')
else:
print('ham')
print('spam')
print('spam')
フロー制御は条件式と節(コードのブロック)からなります。
条件式は学習7で学習しました。
ブロックは、コードを1行以上のひとまとまりにしたものです。
ブロックの区間は、コードの字下げで指定します。
pythonで字下げするときは、行の先頭に4個の半角スペースを入れます。
演習問題で字下げをしている部分を探します。
#1
print('eggs')
if spam > 5:
print('bacon')
else:
print('ham')
print('spam')
#2
print('bacon')
#3
print('ham')
上記の3つがブロックです。
python学習9:フロー制御を理解しよう
'''
spamが1ならHello,
spamが2ならHowdy,
spamがそれ以外ならGreetings!と表示するコードを書きなさい。
'''
条件によって処理を変えるフロー制御です。
今回はif文を使ってコードを作ります。
if spam == 1:
print('Hello')
elif spam == 2:
print('Howdy')
else:
print('Greetings!')
プログラムを実行します。

test関数の引数にspamの値を入れるのですが、それぞれ1,2,3で表示される値が変化しました。
spamの値によって出力される値も変化したので、演習はクリアです。
python学習10:無限ループへの対処法を理解しよう
'''
プログラムが無限ループに陥ったらどんなキーを押しますか?
'''
for文やwhile文を使うと処理を繰り返し行うことが可能です。
条件式を誤ると、特にwhile文で無限ループに陥ることがあります。
プログラムの処理速度は非常に早いので、初見では非常にびっくりすると思います。
そんなときはキーボードでCtrlとCを同時に押します。
コピーするときと同じ要領です。
そうすると無限ループを中断させることができます。
python学習11:フロー制御を理解しよう
'''
breakとcontinueの違いは何ですか?
'''
for文やwhile文での繰り返し処理をする際、ある条件ではそのループから抜け出したり、スキップしたい場合があります。
そんなときはbreakやcontinueを使います。
- break:ループ節から抜け出す。そして次のコードを実行する。
- continue:ループの先頭に戻り、ループ条件式を再評価する。
breakとcontinueを使えばログイン管理ができます。

python学習12:range()関数を理解しよう
'''
forループでrange(10)、range(0, 10)、range(0, 10, 1)と
書くときの違いは何ですか?
'''
range()関数は、一定回数だけコードのブロックを実行したいときに使用します。
for 変数名 in range(引数):
ブロック
演習問題は実際にプログラムを動かして検証します。


いずれも0から9まで1ずつ表示する結果になりました。
したがって、これらは同じものといえます。
python学習13:for文とwhile文を理解しよう
'''
forループを使って1から10までの数字を表示する短いプログラムを
書きなさい。
そして、whileを使って同様に1から10までの数字を表示するプログラムを
書きなさい。
'''
for文にrange()関数を使って書きます。

range(i, j)と引数を2つ入れると、iからj未満まで1つずつ代入していきます。
例では1,11なので、1から11未満(10まで)を1つずつ代入します。
続いてwhile文を使って書きます。

while文のブロックにiを1ずつ増やすように式を書きました。
iが11未満の間は条件式(i<11)がTrueなのでループ処理されます。
iが11になるとFalseになるので、ループ処理が終わります。
python学習14:モジュール内の関数の呼び出し方を理解しよう
'''
spamという名前のモジュールにbacon()という名前の関数があるとすると、
spamをインポートした後にどのように呼び出しますか?
'''
モジュールとは一群の関連する関数を備えたPythonのプログラムです。
要するに便利キットのようなもので、短いコードでプログラムを作れるようになります。
例えば今日の日付を表示するプログラムを書く時、datetimeというモジュールが使えます。

モジュールを使う時はimport モジュール名とあらかじめ宣言します。
モジュール内の関数を呼び出す時は、モジュール名.関数名と書きます。
したがって、演習問題の解答はspam.bacon()です。
python学習15:関数のはたらきを理解しよう
'''
インターネットでround()とabs()関数を検索し、どんな働きをするのか
を調べましょう。
これらの関数をインタラクティブシェルを使って試しなさい。
'''
まずPythonのオンラインドキュメントを開きます。
(参考:Pythonオンラインドキュメント)

総合索引を開きます。

round()関数はRで検索して、探します。round()関数を表示した結果はこちら。

次にabs()関数を調べます。

そしてインタラクティブシェルに入力して試します。
私はJupyter Notebookを使っているので、こちらで入力します。

これで第2章の学習は終わりです。
単に本を読むより、演習を通して学ぶほうが楽しく感じませんか?
もっと詳しく勉強したい方はこちらの本をおすすめします。
次回は第3章を解説します。
ここまで読んでくださりありがとうございました。