この章では、7章の「Pythonの演習問題を解いてみよう」で出題した演習の解答コードと、その解説を行っていこうと思います。
※ただし、解答コードはあくまで一例であり、出力があっていればそのコードも正解です。
演習問題1の解答
解答コード
for i in range(1,31): print(i)
解説
第4章で学んだループ処理の「range」を用いる問題でした。ポイントは、「1から始める」ことと、「30まで出力するためには31個の数字が必要」というところですね。
※ちなみに、今回変数は「i」を使っていますが、好きなもので構いません。
演習問題2の解答
解答コード
for i in range(1,11): if i <= 5: print('数字が対象外です') else: print(i)
解説
1~10までの数字を出力する方法は、演習問題1と同じです。そして、そのループ処理の中に、条件分岐「if i <= 5:」を追加することで、「i」が5以下の時の処理を分けることができます。
ループ処理と条件分岐を組みまわせるには、このような形をとります。図で解説すると下のような形です。
※インデントの数が重要となります。
演習問題3の解答
解答コード
list1 = ['a','b','c','d','e'] for nam in list1: print(nam)
解説
「list」の作成は、「[]」でくくることで作成できると3章で解説しましたね。そして、listを用いたループ処理を行うことで、listの中身を順番に出力することが出来ます。
演習問題4の解答
解答コード1
list1 = ['a','b','c','d','e'] for nam in list1: if nam != 'b': if nam != 'd': print(nam)
解答コード2
list1 = ['a','b','c','d','e'] for nam in list1: if nam != 'b' and nam != 'd': print(nam)
解説
演習問題3と同様に、listを用いたループ処理を行いますが、更に条件分岐もあわせて使うことで問題を解くことができます。解答コード1、解答コード2のどちらも正解ですが、2の方がシンプルですね。
解答コード2の書き方はまだ学んで居ないので、1のように書けていれば問題ありません。解答コード2の書き方は以下に解説しておきます。
「解答コード1」について
条件分岐は、「解答コード1」のように、条件分岐のif文の中に、更にif文を入れることも可能です。3行目の「if nam != ‘b’:」でbを除外し、更に4行目の「if nam != ‘d’:」で、dを除外するといった流れです。
「解答コード2」について
条件分岐は、「解答コード2」のように「and」を間に入れることで複数の条件を設定できます。また、そのほかにも「or」を入れることでも複数の条件を設定できます。
「and」と「or」は、以下の違いがあります。
- 「and」は条件にすべて当てはまる場合
- 「or」は条件のどちらか一方だけでも当てはまる場合
図にすると、以下のようなイメージです。
演習問題5の解答
この問題は、今まで学んだことをすべて組み合わせることで解くことができます。解答コードを見ると、意外と短くて「こんなに簡単に書けるんだ」と思うかもしれません!では、以下の解答コードを確認してください。
解答コード
for i in range(1,101): if i % 15 == 0: print('FizzBuzz') elif i % 3 == 0: print('Fizz') elif i % 5 == 0: print('Buzz') else: print(i)
解説
この問題で重要になるのは、「割り切れる=あまりが0になる」という発想ができるかどうかです。では、解説していきます。
まず1行目で、ループ処理を用いて数字の1~100をループさせます。
そして、2行目では、「15の倍数」すなわち、「15で割り切れる数字」=「15で割ったあまりが0になる」時に、「FizzBuzz」と出力する、といった条件を設定しています。
ここまで出来れば、あとは「elif」を用いて、それぞれ「3の倍数」の時と、「5の倍数」の時を条件分けしてあげれば完成です。
ただし、今回は条件分岐の順番も大切で、先に「15の倍数」の処理を行わなければなりません。なぜなら、「3の倍数」または「5の倍数」の時に、「15の倍数」も条件に入ってしまうからです。
: 13 14 15 ← 「3の倍数」であり、「5の倍数」であり、「15の倍数」 16 :
まとめ
さて、皆さん演習問題は解けましたか?解けなかった方も、落ち込まなくて大丈夫です!今回の解答と解説を読んでしっかり理解していきましょう!
また、このサイトでは初心者の方向けに「プログラミングのお勧め学習法」も紹介していますので、気になった方はそちらもご覧いただけると幸いです。
コメント