【入門】Pythonとは? - サンプルコードも踏まえて徹底解説!
Pythonの概要や特徴、Pythonでできることなどを中心に、勉強方法を解説します。
Pythonの概要や特徴、Pythonでできることなどを中心に、勉強方法を解説します。
スキルアップ
2020/10/02 UP
- プログラミング
- SE資格・スキル
- 入門
- Python
手軽に始められて人気の高いPythonの勉強を新しく始めようとなさる方がたくさんいます。プログラミング自体が場所を選ばず、リモートで作業ができるので、自由な働き方のできる職業としてプログラマーに注目が集まっていることも一因となっています。
しかしせっかく勉強することを決めても、どこから手を付ければいいのか悩まれている方が多いのも現状です。そんな方に、Pythonの概要や特徴、Pythonでできることなどを中心に、勉強方法を解説します。
Pythonとは?
Pythonとはプログラミング言語の一種です。記述する構文が短くシンプルなので、読みやすく書きやすいことが特徴の言語です。ライブラリも充実しており、外部ライブラリまで使えば、コーディングの負担は大きく減ります。インタプリタ型の言語なので、コンパイル環境を用意する必要もなく、難しい環境設定を抜きにしてすぐにプログラムの動作を確認できるのも、簡単なポイントです。
その用途は多岐にわたっており、Webやアプリ開発はもちろん、AIの機械学習にも一役買っている言語です。
話題になり始めたのが最近のため、新しい言語のように思いますが、初めのバージョン0.9.0は1991年に公開されています。JavaやRubyの登場が1995年であることを考えれば、歴史のある言語といえます。
なお、Pythonの特徴やメリットをより詳細に知りたい方は、以下記事をご参照ください。
Pythonでできる3つのこと
Pythonを使いこなせば、さまざまなシステムを作ることができます。Pythonでできることの中で、代表的なものを3つご紹介します。
Webサービス・アプリ開発
Webサービス、アプリ開発の区別なく、業務システムを作ることができます。Webとアプリで作成、している言語がそろうため、Pythonエンジニアという一括のリソースで両方を開発、保守できるのはコスト削減の意味でも重宝します。作るシステムが代わる度に言語が変わり、その都度開発端末の環境構築が必要と言ったこともありません。
大手の写真系SNSや動画アプリもPythonで作られており、利用者の多いサービスであっても大きなトラブルもあまりなく稼働しています。
写真や動画などデータ容量が多いサービスにも対応できるため、プログラムによる制約や制限があまりない言語といえます。
人工知能の開発
Pythonは統計計算をはじめとした、科学技術演算のライブラリが充実しています。ゼロから書こうとすると挫折しそうな処理が、予め準備されたライブラリでまかなえるのは、開発工数と難易度を大きく下げてくれます。
もちろんそれぞれのライブラリとそのライブラリが担う統計処理の意味は分かっておく必要がありますが、概念さえ理解できれば統計学の細かいところまで踏み込まずにすみます。
人工知能の開発に欠かせないものの一つに機械学習があります。Pythonは機械学習に必要なデータを用意することに長けています。画像解析やAIなど、自動化の波は止まることを知りません。今後ますます需要が増加することを考えると、併せてPythonの需要も増えていくことになるでしょう。
データの自動収集
Webスクレイピングと呼ばれるWebサイトの情報を自動で収集する仕組みもPythonで作成することができます。コード自体はライブラリが用意されているので、簡単なコードを数行書くだけです。集めたデータはCSVファイルとして抜き出すことが可能です。そのまま抜き出した処理にプログラムを追加すれば、出力したCSVの加工や、差分を検知してのアラート設定など、抽出データを基にした処理を進めていくことができます。
Pythonを勉強すると何になれる?
Pythonを使いこなすことができれば、プログラマーだけでなく、処理後のデータを利用したさまざまな職種につくことができます。代表的な職種を2つご紹介します。
データサイエンティスト
データサイエンティストとは大量データを分析・解析する人たちのことを指します。データを分析して得られた結果を、実際のビジネスに活用していくための有益な情報に変換していく仕事です。
ただし、Python自体にデータ分析用のライブラリが充実しているとはいえ、どれをどう使うかは人の判断です。そのため必要な結果を導くだけの数学的知識やデータ解析等のスキルも同時に要求されます。
IoTなどで取得できるデータが増えている中、そのデータの使い方を問われるのがデータサイエンティストを中心とした分析のプロです。集めたデータをどう使うか困っている企業が多いことも手伝って、これからの需要の増加が期待できる仕事といえます。
AIエンジニア
AIエンジニアは、人工知能を作ったり、人工知能が機械学習に使うためのデータ処理を行ったりする人たちです。ディープラーニングなどを中心としたデータ処理に便利なライブラリがPythonにはそろっているため、AIの分野ではPythonを利用していることが多いです。よって、Pythonエンジニアが目指せる職種の一つがAIエンジニアになっています。
AIはまだまだ伸びしろのある分野であり、誰もやったことのない活用法を生み出すなど、アイデア勝負になるところもあります。既存の業務を改善する場合でも大改革が起きるといわれているほどです。従来型の開発を踏襲するだけでなく、新しいことにどんどん挑戦していけるので将来性は非常に高い職種です。
Pythonの勉強方法
コンパイル不要のPythonは実行環境の構築が不要なことも手伝って、さまざまな形で勉強することができます。ここでは主な勉強方法を2つ紹介します。
勉強サイトを利用する
WebサイトでPythonの勉強ができるサイトも多くあり、無料で使えるものもあります。ブラウザでプログラムを実行する環境が整っていれば、自分のパソコンに環境を作る必要もなく、簡単に始められるのも、Web学習を後押ししています。
サイトもレベル別に分かれており、試しにPythonを使ってみたい方向けから、本格的に学習したい方向けまでさまざまです。本格的になればなるほど、有償になる傾向にあります。ただし、Webでいつでも学習できる分、自分でしっかり学習計画を立てることができないと、なかなか勉強を進めることができません。万が一何かにつまずいたときのサポート先も見つけておかないと、挫折の原因にもなりかねません。
スクールを利用する
Pythonはプログラミングスクールでも学ぶことができます。カリキュラムが組まれており、一定期間で学習が終了するように作られているので、独学よりも早く確実に定着する可能性が高いです。スクールによっては質問できる環境を作ってくれたり、キャリアを考えた学習プランを立ててくれたりと、スクールならではの手厚いサポートを受けることができます。
ただし、どうしても独学に比べてお金がかかります。迷った方は自分の本気度に合わせて決めましょう。スクールに使った金額相当を、Pythonで作ったもので回収しようとするなら、先行投資と言えます。キャリアアップに必要なら、自費になってしまっても学習しておいて損はありません。
Python入門その1:Pythonの基本
勉強サイトやスクールを探し始める前に、ざっとPythonを触ってみたい人のために、基礎を簡単にご紹介します。
理解度によっては独学が可能かの指針にもなるはずです。
Pythonの型
int,long,float,str,bool,complexなどがあります。全て覚えておく必要はありませんが、特徴的なものやよく使うものは覚えておくと便利です。
boolはTrueとFalseの2つの値しか入らないので、合致するかの条件判定に使います。strは文字列が入るので値の受け渡しには必須の型です。
Pythonの変数、関数
Pythonには定数の概念がなく、全て変数扱いになります。変数はアンダーバーを含む英数字で表します。定数の概念はありませんが、一般に大文字とアンダーバーで記載される変数が定数として扱われています。
変数への代入はサンプルのようになります。文字列を入れる際にダブルクオテーションでくくるのもポイントです。
//変数代入サンプル test_str = "test" test_int = 123
Pythonの関数と定義
タブでインデントしながら、関数定義はdefで行っていきます。インデントで一段下がったところが、関数で行う処理になるので注意しましょう。
addという名称の、足し算を行いその結果を表示するコードは以下の通りです。xに10、yに20が入っているので、結果30が表示されます。
def add(x, y): print(x + y) add(10,20)
Pythonで if
タブでインデントをしながらifとelseで記載していきます。else文は条件に当てはまるときと、当てはまらないときで別処理を記載したい場合に記載しますが、必須ではありません。
サンプルコードではnumの値を判定して10より大きければOver10。10以下であればUnder10が表示されます。
num = 5 if num > 10: print("Over 10") else: print("Under 10")
Pythonで while
タブでインデントしながら、whileで定義をします。whileは条件を満たす限り、ループが回り続けるので、条件判定に使っている数字を増やすのを忘れないようにしましょう。忘れると修了条件を満たさず、無限に回ります。
サンプルコードはnumが10より小さいとき、whileが実行されつづけますが、num+1が処理の最後にあるので10回で止まります。
num = 0 while num < 10: print(num) num = num + 1
Python入門!ソースコードを実行してみよう!
Pythonをオンラインで実行できるサービスはいくつかあります。コードだけではイメージの付きにくい方は、是非ここで紹介するソースコードを実行して、Pythonを体験してみましょう。
Hello World
ここまでで解説した、関数の定義、変数への代入と実行を使ってHello Wolrdのサンプルをご紹介します。Hello Worldはどの言語でも試しに書かれることが多いプログラムです。
まずはdefでtest_hello_worldという関数を定義します。
その後、変数にHello Worldという文字列を代入し、その変数の値をprintで表示させます。
test_hello_world()の関数が実行されると変数strの値が表示され、Hello Worldの文字列が確認できます。
def test_hello_world(): str = "Hello World" print(str) test_hello_world()
If と while を使用したサンプル
ここまでで解説したifとwhileを使用したサンプルをご紹介します。
ここではtest_if_whileという関数を定義します。変数numが0から始まって、10より小さい間、whileのループが回るプログラムです。
whileが10を超えない間、numが5より小さければUnder 5、それ以外はOver 5が表示されます。実行してみるとUnder 5が5個、Over 5が5個表示されます。
分かりにくい方は、numの値が0から始まっていることに注意しましょう。numの値が0、1、2、3、4の間はUnder 5が、5、6、7、8、9の間はOver 5が表示されます。
whileの条件判定が10より小さい間なので、num=10になる前に、処理が終了します。
def test_if_while(): num = 0 while num < 10: if num < 5: print("Under 5"); else: print("Over 5") num = num + 1 test_if_while()
Pythonを使いこなせる人材を目指そう
Pythonの学習は取り組みやすいとはいえど、使いこなそうとすると難易度はどんどん上がっていきます。しかし頑張って勉強すればそれだけのメリットが得られる言語です。
今回のサンプルコードを見て、処理の流れがいまいちピンと来ていない方は、簡単なコードを基にして処理の流れを理解しましょう。これはPythonに限らず、ほとんどすべてのプログラム言語共通の流れとなります。関数定義や条件分岐の書き方が異なるだけです。
Pythonは比較的読みやすいので、簡単なコードであればそれほど悩まずに理解できます。
学習を挫折しないためにも、少しずつ自分でコードを書いて実行しながら着実に勉強していきましょう。