Python入門編!まずは何から学ぶべき?
Pythonは機械学習やWebアプリ開発など、さまざまなシステム開発に活用されている人気のプログラミング言語ですが、Pythonを学ぶにあたって、どういった部分からスタートしたらいいのか分からない方は多いのではないでしょうか。
特にプログラミング初学者にとっては、プログラミングはとても難しそうなイメージがあります。そこで、この記事ではPython入門編として、効率的に学習できる学習ロードマップをご紹介します。
Pythonは基礎から学ぼう
Pythonを習得するには、まずはPythonの基礎から学習する必要があります。この記事では、後ほどPythonの構文を解説しますので、構文の基本的な考え方を学びましょう。具体的な学習方法は、参考書や学習サイトなどを活用することで、ある程度理解することができます。特に動画配信サイトなどでは無料でPythonについて解説している動画を多く見つけられます。動画を参考に、実際に手を動かしながら学習できるためおすすめです。
それと並行して、学習サイトを活用することで効率的な学習を目指せます。学習サイトはさまざまな種類がありますが、まずは無料プランのものから始めて、学習が進んできたらコンテンツ量が多い有料プランなどに切り替えることをおすすめします。
また、基礎を学べたら練習問題にチャレンジしてみることで、理解できている箇所と勉強不足な箇所が浮き彫りになります。練習問題についても学習サイトに記載されていたり、練習問題に特化したサイトがあったりするので、うまく利用して学習を進めましょう。
Pythonのスキルは昨今様々な現場で活用頻度が多いため、習得することで活躍の場が広がり、転職にも有利に働きます。
ぜひ『マイナビIT エージェント』をご活用ください!
そもそもPythonとは?
Pythonとは、インタープリタ型のオブジェクト指向のプログラミング言語です。言語仕様がシンプルであるため、メンテナンス性に優れています。同様に、汎用用途での利用に加えてそれぞれの専門分野にライブラリーが公開されているため、多様なアプリケーション開発で利用が加速しています。
【参考】:python
Pythonの特徴
Pythonの特徴は、プログラム記述がシンプルなことが挙げられます。記述しやすく、かつ判読しやすいのでメンテナンス性に優れています。さらに、オブジェクト指向プログラミングであるため、高機能なプログラムが簡単に記述できるメリットがあります。
加えて、Pythonはインタープリタであるためデバッグが簡単です。コード開発が順次行われており、ライブラリ共有が進んでいます。このことから、分析アルゴリズムが共通化しやすいAIでは、機械学習やディープラーニング(深層学習)のライブラリが数多く提供されています。
以上の理由により、AI分野での開発言語はPythonが標準的に用いられています。
Pythonの動作環境
Pythonは、Windows・Linux/UNIX・Mac OS X等のOSに対応しています。対象となる多種多様なシステムにPythonのインストールモジュールをダウンロードし、インストールが可能です。最新バージョンは、3.11.1です。
【参考】:python download
Pythonエンジニアの年収
Pythonエンジニアには、Pythonを活用する「AIエンジニア」「Webアプリケーションエンジニア」「データサイエンティスト」などの職種があります。ここでは、データサイエンティストに近いアナリストの年収例を参考に紹介します。
「マイナビエージェント職業別年収ランキング」での平均年収は824万円、経済産業省2017年発表の「IT関連産業の給与等に関する実態調査結果」から近い職種のIT技術スペシャリスト(特定技術(DB・NW・セキュリティ等))を参考にすると、平均年収758万円と分かりました。
国税庁2020年発表の「民間給与実態統計調査」における民間企業平均年収は433万円なので、アナリストは一般平均年収よりも、やや高めであることが分かります。
このように、Pythonのスキルを習得することで高収入が期待できる職種を目指すことができます。まずはプログラマーやシステムエンジニアからスタートし、キャリアアップ先としてデータサイエンティストやアナリストを目指しましょう。
【参考】:マイナビエージェント職業別年収ランキング ※【平均年収 調査対象者】2019年12月~2020年5月末までの間にマイナビエージェントサービスにご登録頂いた方 【参考】:IT関連産業における給与水準の実態① ~ 職種別(P7) 【参考】:民間給与実態統計調査-国税庁
Pythonの最初の一歩
Pythonの特徴や動作環境について分かりましたが、Pythonを活用するには構文を理解できるようにならなければなりません。ここでは、最初の一歩として構文の基本的な考え方を説明します。
一般的な開発言語では構文を、 ;(セミコロン)や {}(波カッコ)を用いて区切るケースが多いです。これは1行で記述しても複数行で記述しても構いませんが、開発者それぞれのコーディングのクセがありますので、担当者が変わるとメンテナンスがしにくいことがあります。
【C言語の例】
・その1
#include <stdio.h>
int main(void)
{
printf(“Hello World!”);
return;
}
・その2
#include <stdio.h>
int main(void)
{ printf(“Hello World!”);return; }
上記C言語では2つの例とも正しいコーディングルールですが、複数行に記述したりインデントをずらしたりしていますので、開発者ごとに書き方に違いが出てしまいます。
【Pythonの例】
print(“Hello World!”)
Pythonでは必要最低限のコードで記述でき、コードの区切りを改行としているため、誰が作成しても判別しやすいコードです。また、インデントも構文解釈のためにルール化していており、記述しやすく、判別もしやすいです。その他、必要に応じて # から始まるコメントを記述し、メンテナンス性を高めることができます。
Pythonの基本構文(1)リテラルと変数
リテラルとは、プログラム言語の直値に相当するものを表す表記法です。int(整数)・float(小数)・complex(複素数)の数値型、あるいはstr(文字列型)等のリテラルがあります。文字列はシングルクォーテーションまたはダブルクォーテーションで括り、解釈に違いはありません。その他、int(整数)のサブクラスとしてbool(理論値)が用意されています。
変数の役割は他の言語と同様です。Pythonでは変数を特定のオブジェクトに対するラベルとして取り扱います。最初の1文字目が _ (アンダースコア)、あるいは英字で表し2文字目以降は数字も利用できます。
その他にPython固有のリテラルとして、list(リスト)・tuple(タプル)・set(集合)の複数の要素を格納する型や、dict(辞書)の型が定義されています。これらをさらに詳しく見ていきましょう。
・リスト型 リストは複数のデータを保持できるオブジェクトで、複数の要素を配列のように扱うことができます。リストは要素を[ ](角カッコ)で括り、中に要素を ,(カンマ)で区切ります。
(使用例):
drink=[‘coffee’, ‘juice’, ‘beer’]
print(drink)
・タプル型 タプルはリストと同様に複数の要素から構成されています。リストは生成した要素を変更できますが、タプルは生成してしまうと変更ができません。タプルは要素を( )(丸カッコ)で括り、中に要素を ,(カンマ)で区切ります。
・集合型 集合は数学の集合と同じで集合演算に用います。集合は要素を{ }(波カッコ)で括り、中に要素を ,(カンマ)で区切ります。
・辞書型 辞書型はリストと同じように複数の要素からなります。辞書型はキーと値の組み合わせで構成されています。要素を{ }(波カッコ)で括り、中に要素を キー:値の組み合わせとして入力し、 ,(カンマ)で区切ります。
(使用例):
mydata = {“banana”:1, “apple”:2, “orange”:3}
print(mydata)
Pythonの基本構文(2)演算子とインデント
ここでは、基本構文で用いられる演算子とインデントの扱いについて学んでいきます。
・演算子 数値型では "+ - \ /" の四則演算、 "%" の割り算の余り、"//" の割り算の商、"**" の累乗が使用可能です。 文字列型では[str]+[str] の文字列結合、[str] *[int] の文字列繰り返しが実装されています。またキャスト機能が用意されていますので、int(文字列)やfloat(文字列)で文字列から数値に変換できますしstr(変数)で数値から文字列に変換できます。
・インデント インデントとは行の先頭の空白文字で字下げを行うことです。すでにお話しした通り、インデントは構文解釈に用いられており、同じ空白数の処理のかたまりを同一ブロックとして解釈されます。これによって、for文やif文等の複合文の解釈を統一的に行うことができます。
Pythonの基本構文(3)複合文
Pythonでは、1つの文が1つの処理に対応する文法形式を「単純文」と言います。また、複数の文で構成され、条件に応じて実行制御を伴う文法形式を「複合文」と言います。複合文の代表的なものは、if文・ while文・ for文です。
・if文(条件分岐) if文を用いて条件に応じた処理を行います。else、elifは必要に応じて制御を追加します。
[構文]
if 条件 :
実行する文・ブロック
elif 条件 :
実行する文・ブロック
else :
実行する文・ブロック
(使用例):
if i%2:
print(str(i)+"は奇数です")
else:
print(str(i)+"は偶数です")
・while文(繰り返し) while文は式の値がTrueである間、処理を繰り返します。elseは必要に応じて制御を追加します。
[構文]
while 条件 :
実行する文・ブロック
else :
実行する文・ブロック
・for文(反復処理) for文は配列要素に必要な処理を続けて行います。elseは必要に応じて制御を追加します。
[構文]
for 対象リスト in 条件リスト :
実行する文・ブロック
else :
実行する文・ブロック
range関数を用いると指定回数、または開始数から終了数までの連続した数値を返します。for文等に使うと便利です。
(使用例):
for i in range(5): # 開始値0、終了値5未満まで加算(0 1 2 3 4)
print(i)
for i in range(5, 10): # 開始値5、終了値10未満まで加算(5 6 7 8 9)
print(i)
Pythonの基本構文(4)関数とクラス、ライブラリ
ここでは、コード記述の効率を上げるために用いる関数とクラス並びにライブラリについて学んでいきます。
・関数 関数とは一連の処理をまとめたものです。関数を定義する場合はdef を用います。
(使用例):
def my\_func(data):
print("入力値は"+str(data)) # dataを表示
print("計算値は"+str(data\*\*2))# dataの2乗を計算、表示
for i in range(3):
my_func(i)
・クラス クラスはデータやメソッドを定義したもので、オブジェクト指向プログラミングで用いる定義語です。第1引数はselfで自動的にインスタンス自身が渡されます。
(使用例):
class Example(): # クラスの宣言
def my\_method(self): # 関数を定義
print('変数は', self.var)
return True
def \_\_init\_\_(self): # 最初に呼び出される関数を定義
print('\_\_init\_\_')
self.var = 1
test=Example() # クラス Exampleを呼び出す
print('test.var=',test.var)
test.var=test.var+1
test.my\_method() # クラス定義した関数を呼び出す
・ライブラリー ライブラリーとは、複数の機能をまとめたパッケージを指します。Pythonには便利なライブラリが多数あります。import文でライブラリを読み込むことができます。それぞれのライブラリは、各公式サイトあるいは共有サイトであるGitHubからダウンロード可能です。
【参考】:GitHub
Pythonの情報サイト
Pythonには豊富な情報サイトがあります。理解を深めるためにも以下のサイトをご参照ください。
・Python公式サイト Pythonにおける正しい情報を得るには、まずは公式サイトをチェックしましょう。公式ドキュメントは英語・日本語、両方に対応しており、これまでのバージョンについても検索が可能です。また、「初心者向けガイド」も記載されているため、入門者の方でも情報をチェックしやすいでしょう。
【参考】:python document(英語) 【参考】:Python 3.11.1 ドキュメント(日本語)
・ユーザー会 Pythonユーザが集まり、PythonやPythonを活用したソフトウェアについて情報を交換し、ユーザ同士が交流するためのカンファレンスとなるサイトです。
【参考】:日本Pythonユーザ会:python Japan
Pythonの学習方法やおすすめの資格
ここでは、Pythonを学習するにあたっての勉強方法や、取得をおすすめする資格について紹介します。
学習サイトを活用する
前述したように、Pythonを含むプログラミング言語の学習には、学習サイトの活用が有効です。無料で利用できるものから、有料のものまで学習サイトの種類はさまざまなものがありますが、まずは無料プランから試して有料に切り替える方法がおすすめです。
以下に、おすすめの学習サイトを3つ紹介します。
・Progate 【参考】:Progate
・Python-izm 【参考】:Python-izm
・ドットインストールPython入門 【参考】:ドットインストールPython入門
Pythonの参考書籍
Pythonの学習には参考書の活用がおすすめです。ここでは、おすすめの参考書を3つ紹介します。
「Pythonチュートリアル 第4版」 本書は、Pythonの作者Guido氏が書き下ろした参考書です。Pythonの機能や特徴が分かりやすくまとめられており、Pythonの基本的な考え方が理解できます。Pythonのチュートリアルとして、モジュールやプログラムを読み書きできるように解説されています。
▪著者:Guido van Rossum ▪ページ数:264ページ ▪出版社:オライリージャパン ▪発売日:2021/02
【参考】:Pythonチュートリアル 第4版
「入門 Python 3 第2版」 Pythonの初級者編としておすすめの参考書です。Pythonの基礎・プログラミング・ウェブ・データベース・ネットワーク・並行処理のことまで解説されており、応用編としても活用できます。Pythonの入門書、またはリファレンスマニュアルとしてもおすすめです。
▪著者:Bill Lubanovic ▪ページ数:800ページ ▪出版社:オライリージャパン ▪発売日:2021/03
【参考】:入門 Python 3 第2版
「Python1年生 第2版 体験してわかる!会話でまなべる!プログラミングのしくみ」 豊富なイラストや図解によって、初心者でも理解しやすい内容が人気の参考書です。用意されているサンプルを活用してプログラムを体験できるため、体系的に知識を習得することができます。
▪著者:森 巧尚 ▪ページ数:200ページ ▪出版社:翔泳社 ▪発売日:2022/08/04
【参考】:Python1年生 第2版 体験してわかる!会話でまなべる!プログラミングのしくみ
Pythonの資格
Pythonにはスキル証明となる資格試験があり、代表的なものに「Python3エンジニア認定基礎試験」「Python3エンジニア認定データ分析試験」「Python Certifications」があります。
「Python3エンジニア認定基礎試験」は、一般社団法人Pythonエンジニア育成推進協会が実施している、Pythonの基本的な知識を評価する試験です。出題範囲はPythonの文法や基礎知識であり、難易度はそこまで高くはありませんので、しっかりと試験対策を行えば合格を目指せます。
【参考】:Python3エンジニア認定基礎試験
「Python3エンジニア認定データ分析試験」も一般社団法人Pythonエンジニア育成推進協会が実施している、データ分析手法に特化した資格試験です。2020年からスタートした比較的新しい試験であり、Pythonでデータ分析を行うための環境構築・数学・統計学・ライブラリの使い方などについての知識が問われます。
「Python Certifications」は海外の資格であり、レベル別にPythonのスキルを証明する資格試験が設けられています。難易度が易しい順に「PCEP」「PCAP」「PCPP」に分けられています。日本からでも受験できますが、受験には英語が必須です。海外での活躍を視野に入れている方におすすめです。
人気の高いPythonを用いて生産性を向上しましょう
Pythonは記述が簡単で統一性があり、メンテナンス性が高い特徴があります。そのため開発生産性が向上し、コード開発期間の短縮が可能です。また、必要な汎用ライブラリー・専門ライブラリーともに多数ありますので、利用者が増加しています。
特にAI領域ではPythonが標準的に用いられており、今後さらに市場拡大が期待できるテクノロジー適用領域です。積極的にスキルアップを図り、Pythonエンジニアとしての活躍を目指してください。
スキルを習得した後は、それを活かせる企業に身を置きましょう。その際、転職エージェントを活用することで、自分に合う企業を探しやすくなります。
そこでぜひご活用いただきたいのがマイナビIT エージェントです。
マイナビIT エージェントは、IT・Webエンジニア向け、無料の転職⽀援サービスです。
IT・Webエンジニアの転職事情に詳しいキャリアアドバイザーが、あなたのご経験やスキルをお伺いし、転職活動のプランをご提案します。
アドバイザーは企業側と直接連携を取れるので、求人票に載っていない情報も確認することができます。こちらで、働き方などをしっかり確認の上、応募企業を選んでいくのが良いでしょう。
未経験からのキャリアチェンジは心身ともに本当に大変だと思います。少しでもご自身の負担を減らすべく、エージェントサービスを活用して、失敗のない転職活動に臨んでいただければ幸いです。
エンジニア転職のご相談はぜひ
『マイナビIT エージェント』へ!
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから