Python学院
メールマガジンバックナンバー

vol.39

  • コツ・知識
  • メールマガジン

Pythonの演習問題を解いてみよう!
~Pythonを活用して業務自動化させる~

今回のテーマは【Pythonの演習問題のご紹介】です。

弊社では業務改善のご支援のために、Pythonの研修サービスを提供しています。
今回はいつもと趣向を変え、弊社で作成、提供しているPythonの演習問題をご紹介します。

「Pythonを学習してみたけど、実際にプログラムが作れるのか試してみたい」
「Pythonでどんなプログラムを作れるか知りたい」
このようなご興味をお持ちの方は是非、この記事をご覧ください!


(約5分で読めます)

~~~~~~~~~目次~~~~~~~~~
1. 演習問題を解く前に~アルゴリズムを考える大切さについて
2. Python演習問題①~穴埋め~
3. Python演習問題②~自分の力で挑戦~
4. まとめ
~~~~~~~~~~~~~~~~~~~~

1. 演習問題を解く前に~アルゴリズムを考える大切さについて


 演習問題を解く前に、皆様に考えていただきたいことがあります。
それは「Pythonで業務自動化を行うために学ぶべきことは何か」ということです。
多くのお客様がおっしゃるのは「たくさん本(テキスト)を買って
Pythonのいろいろな使い方を知る
」ということです。
確かに色々なPythonの使い方を知っている方が「この業務にPythonが使えるかも!」
というアイデアが生まれますので、そのような学習方法も有効ではあります。

しかし「自分自身でPythonを使って業務自動化を行う」という目標に対しては
上記の学習方法ではなく「ひたすら業務に沿った問題を解くことで
アルゴリズムを考える
」ということが必要になります。

なぜなら、本やテキストに書いてある内容を書き写すだけでは
自分でアルゴリズムを考える」ということを行っていないからです。


少し例を挙げて考えると
数学の問題を解くときに、公式をそのまま当てはめて解けるのは初歩の問題のみで
多くの問題では、公式の考え方を応用させることで初めて解けるものだったと思います。
そして、応用力を鍛えるために、ドリルで演習問題をたくさん解いて、
自分の中で「問題の考え方のパターン」を蓄積していったと思います。

同じようにPythonの学習でも、教科書をなぞったプログラムを
そのまま現場で使えるということはほとんどなく
実際の業務では、教科書で学んだ内容に応用を加える必要があります。
そして応用を加えるには、たくさんの演習問題を解いて
問題の考え方のパターン = アルゴリズムの考え方のパターン」を
皆様の中で蓄積させる必要があります。

私自身も、Pythonを学習し始めた時に
Pythonに関する本をたくさん買ってきて勉強するということを行っていて
「Pythonでできることの知識は広がったが
プログラムを書けるようにはならなかった」ということがございました。

後々にプログラムを書けるようになったのは、業務に沿った演習問題をひたすら解くことで、
アルゴリズムを考える力を身に
けることができたからだと思います。

ですので、本メールマガジンでは「業務に沿った演習問題」を2つ
皆様にご紹介します。

ぜひ、自分の「アルゴリズムを考える力」の力試しにお使いください。

2. Python演習問題①~穴埋め~


【問題】
下記の「都道府県別研修費用.csv」というファイルがあります。
このファイルをシステム上で読み取れる形にするため、
___」となっている部分に対して選択肢から適当な文言を選び
プログラムを完成させてください。

※「都道府県別研修費用.csv」のデータは、インソースで作成したテストデータになります。
現実の内容とは一切関係ありません。

※「都道府県別研修費用.csv」を作成する際は、本メールの下部に
テキストデータがございますのでご利用ください。

{変更点}
「都道府県名」の列に記載の各都道府県の名称から、「数字」と「.」を削除するプログラムを作成してください。


・(画像ファイル)都道府県別研修費用.csv


{問題文}
 --------------------------------------------------------------------------------------------
import csv

count=0
row_list=[]
with open("都道府県別研修費用.csv","r")as file:
    reader=csv.reader(file)
    for row ___ reader:
        str_count=___(count)
        replaced_charactor=str_count+"."
        row[0]=row[0].___(replaced_charactor,"")
        row_list.append(row)
        count=count+1

with open("(変更済み)都道府県研修費用.csv","w",newline="")as file2:
    writer=csv.writer(file2)
    writer.writerows

{選択肢}
***************************************
6行目 ・in ・on ・out
7行目 ・int ・str ・bool
9行目 ・replace ・ remove ・split
***************************************

{解答}
--------------------------------------------------------------------------------------------
import csv

count=0
row_list=[]
with open("都道府県別研修費用.csv","r")as file:
    reader=csv.reader(file)
    for row in reader:
        str_count=str(count)
        replaced_charactor=str_count+"."
        row[0]=row[0].replace(replaced_charactor,"")
        row_list.append(row)
        count=count+1

with open("(変更済み)都道府県研修費用.csv","w",newline="")as file2:
    writer=csv.writer(file2)
    writer.writerows(row_list)
--------------------------------------------------------------------------------------------

3. Python演習問題②~自分の力で挑戦~


{変更点}
先ほどの演習問題で使用したCSVファイルに対して
1行目の「2020年4月」のような「〇月〇日」の形から
「2020/4」のような「〇/〇」の形に変更するプログラムを作成してください

※表示形式により「Apr-20」といった出力がなされる場合がございます

{解答}
--------------------------------------------------------------------------------------------
import csv

rows_list=[]

count=0

with open("都道府県別研修費用.csv","r")as file:
    reader=csv.reader(file)
    for row in reader:
       
        if count==0:
            row[1]=row[1].replace("年","/")
            row[1]=row[1].replace("月","")
            row[2]=row[2].replace("年","/")
            row[2]=row[2].replace("月","")
            row[3]=row[3].replace("年","/")
            row[3]=row[3].replace("月","")
            rows_list.append(row)
        else:
            str_count=str(count)
            replaced_charactor=str_count+"."
            row[0]=row[0].replace(replaced_charactor,"")
            rows_list.append(row)
        count=count+1

with open("(変更済み)都道府県研修費用.csv","w",newline="")as file2:
    writer=csv.writer(file2)
    writer.writerows(rows_list)
               
--------------------------------------------------------------------------------------------

問題は解けましたでしょうか。
上記の問題は、業務で頻繁に存在する
CSVファイルを自社のシステムに読み込める形に書き換える
というプログラムになります。
プログラム自体は、特別な知識は必要なく30行ほどで書ける内容ではございますが
「1からプログラムを考えて組み立てる」というのは案外難しいのではないかと思います。
しかし、解けなかったという方も「演習問題に触れる機会が少なかった」だけですので
これを機に演習問題に触れる機会を増やしていけば
Pythonの自動化はできるようになっていくと思います。

4. まとめ


 本日のメルマガの内容をまとめると以下の2つになります。
Pythonで業務自動化を行うには、演習問題をひたすら解いて
「問題の考え方のパターン = アルゴリズムの考え方のパターン」
を自分の中に蓄積させる必要がある


今の時点で問題を解けなくても
 演習問題に触れる機会を増やせば
 Pythonを使った業務自動化はできるようになる


本メルマガでは、Pythonを業務で活用する方法と、演習問題についてお話をいたしました。
もし「たくさんの演習問題を解いて、業務自動化にPythonを使う力を身に付けたい」
という方がいらっしゃいましたら、弊社の
「Python学院~アルゴリズム思考力向上編」にご参加ください。

(詳細はこちら)
https://www.insource.co.jp/bup/python-algorithm.html
CSVファイルの自動操作についても学習します!)


最後までお読みいただき、ありがとうございました!
「インソースのPythonマガジン Vol.39」は、これで以上となります。

このメルマガでは今後も、Python学習に関するお役立ち情報、また社内のDX化を
主導するための具体的な方法や、弊社や他社様のPython活用の事例など、
ビジネスの現場で真に活かせる有益な情報の提供を行ってまいります。

それでは、次回もお楽しみに!

関連研修