こんにちは、donutです。
今回は現在私が学習中のプログラミング言語「Python」についてご紹介しようと思います。
Pythonは1991年にオランダ人のグイド・ヴァンロッサムによって開発されたプログラミング言語です。
少ないコードで簡単にプログラムが書けること、専門的なライブラリ(※)が豊富にあることが特徴です。
また、記載方法が分かりやすいことや、誰が書いても同じようなコードになることから、
プログラミング初心者でも取り組みやすい言語として注目されています。
(※)汎用性の高いコードをまとめたプログラムを示します。
Pythonでは主に以下のような開発を行うことができます。
◆AI(機械学習・深層学習)
◆ゲーム制作
◆データ処理/分析/解析
◆AI(機械学習・深層学習)
Pythonで今最も注目を浴びているのがAI(人工知能)や機械学習の開発です。
AI分野のプログラム処理では、高度な計算や統計処理が必要になります。
そこで、大いに役立つのがPythonです。
AIを使ってできることとして、身近なもので例えると以下が代表的です。
・Roomba(ルンバ)
→iRobot社が提供しているロボット掃除機です。
家具にぶつからずに部屋の掃除を的確に行うルンバは、
人の労力を削減し、掃除の常識を大きく変えました。
・顔認証ゲート
→日本各地の空港で導入されており、カメラで撮影した顔画像と
ICパスポート内に記録された顔画像データを照合して顔認証を行います。
顔認証ゲートの導入により、出入国審査で生じる審査官の負担が軽減され、
スムーズな手続きが可能となりました。
・Siri(シリ)
→「Hey Siri!」でおなじみのApple社製品に搭載されている「Siri」では、
音声認識の技術が使用されています。
音声データの波形を手掛かりに発せられた言葉を特定し、
テキストデータに変換することで指令内容を判断するという仕組みになっています。
私自身もiphoneで使用する機会があり、ちょっとした場面で助けられています。
・チャットボット
→人間の質問や依頼に対して人工知能が受け答えして、コミュニケーションを取る技術です。
代表的なものとして、ドコモオンラインショップのチャットボットが挙げられます。
ユーザーからの様々な問い合わせに合う回答パターンを人工知能が蓄積しています。
◆ゲーム制作
Pythonでは、2Dのレトロゲームや3Dのゲームも開発できます。
例えば、Pythonには「Pygame」というゲーム開発用ライブラリや、
「Cocos2d(ココスツーディー)」といった2Dゲーム開発用フレームワークなどがあります。
※PygameやCocos2dについては、以下の記事でも分かりやすく解説されています。
<参考>
◆Pygameを利用してPythonでゲームを作成する方法を現役エンジニアが解説【初心者向け】
◆Cocos2d-x理解する!初心者でも分かる特徴、種類、基礎知識について簡単に解説!
◆データ処理/分析/解析
弊社の強みでもある「データ分析」において、Pythonは欠かすことのできない存在です。
例えば、以下のような処理が可能です。
・Webサイトからの効率的なデータ収集
→「Webスクレイピング」と呼ばれる技術を使い、定期的にチェックしている
Webサイトのデータを採取することで、手動でアクセスする手間を省くことができます。
・Excelに代わってデータ処理や分析を自動で行う
→膨大なエクセルのデータを開かずに、目的のデータだけを集計・抽出して
別のアプリへコピーすることが可能です。
ちなみに、Pythonには少ないながらも苦手としている分野もあります。
・スマホアプリの開発
・Windowsなどのデスクトップ系アプリの開発
・高速な処理を求められる開発(※)
(※)複雑な処理が求められる巨大なゲームや、基幹システムなどの
スピードが重視される開発が該当します。
ブラウザ上でコードを書いて実行できるPaizaIOというサービスを使用して、文字列「Hello World」を書いてみました。
ちなみに、「Hello World」はプログラミング言語において非常に単純明快なプログラムであり、
入門書などでもプログラムを動かすための基本文法の解説例としてよく使われています。
実際にコードを書いてみると「シンプルで書きやすい」印象がありました。
また、学習を進める中で「文法を覚えやすい」こともメリットにあると考えています。
プログラミング言語を学んでいくにあたり、ロジックを理解した後は
英語の文法を覚えるようにプログラミング言語ごとで文法を覚える...という流れになります。
Pythonの場合、その文法が必要最低限のものしかなく、シンプルで覚えやすい文法になっています。
皆さんもPaizaIOを使って実際にPythonを書いてみてはいかがでしょうか。
ご紹介した通り、PythonはAIを主体に様々な分野で活用されており、
今後も機械学習や深層学習などでより一層の発展が期待されています。
また、Pythonの知名度上昇は国家資格にも影響を与えています。
IPA(情報処理機構)では、国家資格の一つである「基本情報技術者試験」を実施しており、
その試験問題の1つに「複数のプログラミング言語の中から得意な問題を選択して答える形式」があります。
これまでは「C」「COBOL」「Java」「アセンブラ言語」「表計算ソフト」が対象でしたが、
AI人材育成のニーズに合わせ、2020年の春期試験から「COBOL」が廃止され、「Python」が追加されています。
そして、2022年度より実施される「情報Ⅰ」において、高校の授業にもプログラミングとしてPythonが本格的に導入される予定です。
さらに、2025年度から大学入学共通テスト(旧センター試験)に「情報Ⅰ」の新設も予定されており、
年代を問わずにPythonを使ったプログラミング学習がますます欠かせないものになりそうです。
<参考>
◆高等学校情報科「情報Ⅰ」教員研修用教材(本編)(文部科学省より)
(文部科学省が公開している教員向け教材でも掲載されています)
◆2025年から大学入学共通テストが大幅変更 「情報」新設、
国語・数学は問題数増か 対策は(高校生新聞より)
普段使っているWebサービスもPythonで作られているものがあり、
知らないうちにPythonに触れているといっても過言ではないほど
メジャーなプログラミング言語であることを知ることができました。
ここまでお読みいただきありがとうございました。