この記事でわかること

今回は、2021年エンジニアが学びたいプログラミング言語ランキング1位に選ばれたPythonについて書かせて頂きました。
当記事の内容は、プログラミングを始めたばかりの人や新卒社員、これからPythonを学ぶ方に向けた内容となっております。

目次

1. Pythonとは
2. Pythonの特徴
3. Pythonでできること
4. 資格試験
5. 参考書籍・参考サイト

1. Pythonとは

1990年代初頭ごろから公開されているプログラミング言語で、「読みやすさ・分かりやすさ」を重視しており、Pythonを知らない人でも理解しやすいようにデザインされています。実用的なプログラミング言語として広く使われています。読みやすさ・習得しやすさ・実用性のバランスがPythonの大きな魅力です。

システム管理やツール・アプリケーション開発・科学技術計算・Webシステムなどで広く利用されてきました。
特に、機械学習ブームにより、優れた科学技術計算ツールとして評価され、大きな人気を得ました。また、日本の国家資格である基本情報技術者試験で出題されるプログラミング言語にPythonも追加されました。
これからのソフトウェア産業を支える基礎技術となることが想定されます。

2. Pythonの特徴

Python言語は「読みやすくて書きやすい」をコンセプトに開発された言語であり、他言語に比べてプログラムの記述量が少なくて済むという特徴があります。
また、Pythonではライブラリという便利なプログラムをまとめたものを使いながらプログラミングするのが一般的です。このライブラリの数が非常に豊富という特徴があります。
たとえば、グラフを描写するためのグラフを書くには、通常複雑な処理をいくつも記述する必要があります。しかし、Matplotibというライブラリを使えば非常に簡単にグラフを書くことが出来ます。

・代表的なライブラリ

ライブラリ名概要
NumPy数値演算をする際に便利なライブラリ
Pandasデータ分析に必要なDataFrameという道具を扱うためのライブラリ
Matplotibグラフを作成するためのライブラリ
RequestsWebページにアクセスするためのHTTPライブラリ
BeautifulSoup4Webスクレイピング時に利用するライブラリ

3. Pythonでできること

Pythonの豊富なライブラリによって、下記に強みを発揮します。

  • アプリケーション作成
  • データ分析
  • Webスクレイピング
  • タスクの自動化
  • 機械学習
    それぞれについて解説していきましょう。
  • アプリケーション作成

Pythonを使えば、比較的容易にアプリケーションを作成できます。
たとえば、視覚的に操作ができる画面(インターフェイス)をGUI(Graphical User Interface)や、YouTube、Dropbox、Instagram
などのWebアプリケーションを作成するための強力なライブラリが存在します。

  • データ分析

データ分析を行う際には、本格的に分析を始める前に、分析しやすいようにデータを加工する「前処理」という面倒で地道な作業があります。たとえば、複数のデータを1つに結合したり、一括でデータの値を変換したりします。
また、莫大なデータを集計してクロス集計表を作成したり、データを視覚的に読み取りやすいようにグラフを描いたりする「データの可視化」を行ったりもします。

Pythonにはデータ分析やデータの可視化をするための強力なライブラリが豊富にあります。たとえば、Pandasと呼ばれるライブラリを使えば、これらの複雑な処理も数行のプログラムを書くだけで行うことができます。

  • Webスクレイピング

Webスクレイピング(以降:スクレイピング)とは、データ分析などで必要となる情報をWebページから取り出す行為のことをいいます。このスクレイピングを上手く活用できれば、これまで手作業で行っていたWebページから情報を収集する作業を自動化できます。下図のように、通常スクレイピングでは
①Webページにアクセスしてページ情報を取得する
②取得したページ情報から必要な情報を取り出し構造化して保存する
という2段階の手順を踏む必要があります。

スクレイピングを行うには、各ステップに対応したプログラムを記述する必要があり、特に②の部分は難易度が高いといえます。それは、Webページの構造がサイトによって大きく異なることから、Webページに合わせてプログラムをカスタマイズしなければならないからです。
しかし、ライブラリのRequestsやBeautifulSoupを使用することによって、少ないプログラミングの記述量で実現できます。
具体的には、Requestsを使ってWebページにアクセスし、BeautifulSoupを使ってWebページから必要な情報を抽出します。

スクレイピングを行う際には非常に短時間に集中してWebページにアクセスすることになり、相手のWebサーバーに負荷をかけることになるため、アクセスする間隔をあけるなどしてアクセス先のサーバーに負荷をかけないための配慮が求められます。
また、Webページ上にある情報を使用する際には、関連する法律や各Webサイトが示す利用規約を守る必要があります。

  • タスクの自動化

単純なコピー&ペーストや、決まった繰り返しの作業を自動的に行わせること機能のことを「マクロ」といいます。たとえば、テキストファイルを開き、内容をコピーしたものをExcelにペーストするといった作業があったとします。対象となるテキストファイルが膨大にあった場合には、手作業で行うと大変な手間がかかります。しかし、Pythonのライブラリを使うと、このような面倒な作業も簡単に自動化できます。

Pythonにはマウスやキーボードの自動操作や、Excelなどの他のアプリケーションを直接操作するためのライブラリもあります。
たとえば、ライブラリのOpenPyXLはExcelの読み書きを行うためのライブラリです。Excel内シート内のセルの値の読み書きや、複数のExcelファイル間でのデータのコピー、Excelシート内にグラフを挿入するといったことを行えます。
このOpenPyXLを上手に使えば、Webページのアクセス数をまとめたレポートや、日々の売上数を集計したレポートなどの作成も自動化できます。これらをまとめれば、業務効率化ツールとしての利用も可能です。

  • 機械学習

AIを開発する言語として、今、Pythonがよく採用されています。現在のAIには、「機械学習」という数学的な手法が多く利用されており、この機械学習手法の多くがPythonのライブラリの中に実装されています。基本的な機械学習手法であれば、ライブラリのScikit-learnを使うことで、商品の売上予測を行うようなモデルを数行のプログラムで作成できます。

深層学習(Deep Learning:ディープラーニング)のような高度な機械学習手法も、Googleが開発したTensorflowというライブラリを使用することで、Pythonで実装することが可能です。

. 資格試験

2021年11月現在、資格区分は2種類あり、Oracleが実施する「Python3エンジニア認定基礎試験」と「Python3エンジニア認定データ分析試験」があります。Python3エンジニア認定基礎試験では、Pythonの文法や基礎知識について問われます。

・Python3エンジニア認定基礎試験

対象試験Python3エンジニア認定基礎試験
出題形式CBT(Computer Based Testing)形式
試験時間60分
問題数40問
合格ライン70%(28問)
受験料一般価格:11,000円(税込)
履歴書の表記Pythonエンジニア認定試験 Python3エンジニア認定基礎試験 取得

 Python3エンジニア認定データ分析試験では、データ分析の基礎や方法、数学やデータ解析ライブラリ「Pandas」に関する知識について問われます。

・Python3エンジニア認定データ分析試験

対象試験Python3エンジニア認定データ分析試験
出題形式CBT(Computer Based Testing)形式
試験時間60分
問題数40問
合格ライン70%(28問)
受験料一般価格:11,000円(税込)
履歴書の表記Pythonエンジニア認定試験 Python3エンジニア認定データ分析試験 取得

. 参考資料・参考サイト