超初心者向けPython入門講座

仕事の効率化などにpythonを使いたい!けど何から始めらばよいか分からない、といった初心者の方向けに、pythonの導入から実用的な使い方まで、極力分かりやすくまとめたサイトです。

python Python初心者講座

第8章 Pythonの演習問題(解答編)

投稿日:2020-04-14 更新日:

この章では、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
:

 

まとめ

さて、皆さん演習問題は解けましたか?解けなかった方も、落ち込まなくて大丈夫です!今回の解答と解説を読んでしっかり理解していきましょう!

>>前回:第7章 Pythonの演習問題を解いてみよう

>>次回:第9章 Pythonの入力(input)を使ってみよう

スポンサーリンク




スポンサーリンク




-python, Python初心者講座
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

仮想環境でのSpyder利用法と実行場所

Pythonの仮想環境で「Spyder」を使うには、注意点があります。ここでは、仮想環境でのSpyderの使い方について解説したいと思います。 また、あわせて仮想環境を任意の場所で起動する方法について …

Pythonでネットの情報を取得しよう(webスクレイピング)

Pythonは、ほかの言語に比べネットからデータを取ってくる事が得意な言語です。この、ネットからデータを取ってくることを「webスクレイピング」と呼びます。 普段私たちが見ているサイトの情報などは、基 …

Spyderの実行場所について(Python初心者)

Spyderの便利な機能として、「F9キーでコードを部分的に実行できる」というものがあります。 ただし、「F5キーで全体を実行する場合」と実行場所が異なることがあり、私自身使用しているときに混乱したこ …

Pythonでフォルダ内のファイル名を取得しよう(拡張子指定)

今回は、特定のフォルダに入っているすべてのファイル名を取得したり、特定の拡張子のファイル名を取得する方法について解説します。 ファイル名を取得することで、フォルダ内のファイルを対象にループ処理などを行 …

numpyの使い方(配列)とlistとの違いを比較(Python)

Pythonで配列を扱う際にまず学ぶのが、標準搭載されている「list」だと思いますが、Pythonにはもう一つ、「numpy」という外部ライブラリがあります。 ですが、この2つの何が違うのか、どう使 …

スポンサーリンク





初めまして、サイトを運営しているキユと申します。

このサイトでは、まったくの初心者がPythonを使って、単純作業や仕事を効率化できるようになるまでに必要なことをまとめています。