Python(パイソン)とは?言語の特徴を分かりやすく解説!

こんにちは。ITエンジニア・webディレクター・webデザイナーなどのIT人材の自立・キャリアを支援するITプロパートナーズ編集部です。

弊社では、独立精神旺盛な優秀なエンジニアの方々の独立・起業サポートや、フリーランス支援を行っています。
こちらでは、日々の現場でサポートさせていただいている中での、プロの目線で、エンジニアに役立つお話をしてまいります。

プログラミング言語であるパイソンをご存知でしょうか?パイソンはPythonと表記されます。最近では人工知能の流れから、その存在感を増しているプログラミング言語といえるでしょう。

本稿ではパイソン初心者の方、パイソンで案件をお探しの方に向けて、パイソンの基礎から案件までをご紹介します!

それではみて行きましょう!

freelance

そもそもパイソン(Python)言語とは?

shutterstock_366126065

パイソンはPythonと表記し、英語では爬虫類のニシキヘビの意味を持ちます。名前の由来はイギリスの有名コメディTV番組「空飛ぶモンティ・パイソン」から来ているといわれています。

開発者はオランダ人のグイド・ヴァンロッサムであり、オープンソースソフトウェア(OSS)として1991年に初版となるバージョン0.9xが公開されています。余談ですが、この1990年前後はいわゆる軽量プログラミング言語(LL:Lightweight Language)がたくさん生まれた時代でもあります。

同じLLとして有名なPerlは1987年、Ruby・PHPは1995年に誕生しています。

LLとは、主にプログラマがソースコードを書くために必要な負担軽減を目的とした言語の総称です。「軽い」という言葉は、LLが使用するマシンリソースが軽いという意味ではないことに注意が必要です。

ちなみに、パイソン言語を使用するプログラマのことをPythonistaと表現します。同じLLのPerlはPerler、PHPはPHPer、RubyはRubyistと表現します。

パイソン(Python)でできることって?

shutterstock_339989237

プログラミング言語・パイソンでできることを具体的にご紹介しましょう。

前述の通り、昨今では人工知能が世間を騒がせ、バズワードとしてよく語られています。人工知能といっても、実はさまざまな分野があり安易にひとくくりにすることはできない側面がありますが、大きな分野の1つとして、機械学習があります。

機械学習について検索すると、以下のような説明があります。

機械学習とは、データから反復的に学習し、そこに潜むパターンを見つけ出すことです。 そして学習した結果を新たなデータにあてはめることで、パターンにしたがって将来を予測することができます。 これは予測分析におけるモデル構築の自動化につながり、データサイエンティストの人材不足を補うものになると、大きく期待されています。

ちょっと説明が抽象的で初心者には理解が難しいかもしれませんが、簡単にいえば、たくさんの過去データを元に機械的に分類をしたり、機械的に予測をしたりする手法といえます。

この「機械的に」の部分をつかさどるのが、データ処理(前処理などと表現する場合もあります)やアルゴリズム(機械学習モデル、単にモデルと表現したりすることもあります)です。データ処理やアルゴリズムを実装するためにもっともよく使われている言語の1つがパイソンであるといても差し支えないでしょう。

それではなぜ、機械学習によくパイソンが使用されているのでしょうか?

こちらは諸説ありますが、筆者が考えるパイソンが機械学習に秀でている理由は、「機械学習に必要なライブラリ(プログラム群)が充実していること」です。機械学習では、データセットから知見を引き出すために前処理やモデルを変更したりして試行錯誤が必要です。

この試行錯誤における生産性を高めるためにパイソンを使用することで効率化を図ることができます。

また、パイソンは機械学習だけでなく、webアプリケーションの開発にも一般に利用されています。有名なのはGoogleです。日本では主にエンジニア向けのIT勉強会・イベント用webサイトのconnpassがあります。ただ残念ながら全体的にはPerl、PHP、Ruby、Javaなどで開発されたwebアプリケーションに比べて少ないです。

では具体的にパイソンでどのようなものを作れるのでしょうか?

パイソンで作れるものって?

パイソンで作られてるものって実は結構あります。事例をみてみましょう!

  • Youtube
  • Evernote
  • instagram
  • Dropbox

知らなかった人にとっては意外だったのではないでしょうか?

誰もが知るようなサービスもパイソンで作られています!

パイソンでできることの詳しい内容は下記をチェックしてくださいね。

Pythonでできることってなに?

2016.04.06

では、そんなサービスを作ることができるパイソンの市場はどうなっているのでしょうか?

パイソン(Python)の市場状態とは?

まずはパイソンを扱えるとどんな職種に就くことができるかみて行きましょう!

パイソンを扱える職種って?

Webエンジニア

Webエンジニアは、パイソンを使って上記にあるようなアプリを作ったりする職種です。他のプログラミング言語だと数行かかるものが1行でかける場合もあり、とても汎用性が高く人気を博しています。

データサイエンティスト

データサイエンティストは、今もっともホットでセクシーな職種と言われています。
IoTやAIといった機械学習の導入が進められている中、一番大切なのはいかにデータを蓄積できるかです。
それを実現できるのが、パイソンを習得している、データサイエンティストという人たちです。

それでは、そんな職種についている人たちの年収ってどれほどなのでしょうか?

パイソン言語を扱う人の年収って?

実は、言語別で年収をみてみるとパイソンが一番年収が高くなっております!

paiza開発日誌によると、

  • パイソン: 651万
  • Perl: 633万
  • Ruby: 606万
  • C言語: 597万
  • JavaScript: 555万
  • PHP: 538万

以上のような結果となっており、パイソンの需要が高いことが伺えますね!

python案件についてはこちらからご覧ください。

パイソン(Python)入門

shutterstock_475068907 (1)

本章以降では、パイソン入門として以下の基礎的な点を解説します。

  • 基本構文
  • プログラムの実行方法
  • インストール
  • 文字列
  • print文

なお、パイソンを取り扱う際の注意点として2系と3系でさまざまな違いがあります。とくに文字列の取り扱いが違うので、日本語などのマルチバイト文字をプログラム上で取り扱う場合は注意する必要があります。

初心者の方がなんらかの実装方法をweb検索する場合、そのソースコードがどのバージョン前提で書かれているのかを常に意識するようにしてください。

本章では、基本的に2,3系で共通する点に触れるにとどめます。文字列・print文の章で少しだけ2,3系の違いについて紹介します。

パイソンの基本構文

パイソンでは基本的な構文についてはそれほどメジャーなLL、たとえばPerlやPHPなどと大きくは違いがない側面も少なくありません。基本的には改行がソースコードの区切りとみなされますが、セミコロン(;)も同様に区切りと判断されます。

ただし実践的にはPHPのようにセミコロンが必須という訳ではないので、パイソンではセミコロンを置かずに改行を置くソースコードが一般的です。

Ruby同様、コメントは#を使用します。パイソンがPerl、PHP、Rubyと比べて違うのは、ブロックの定義でしょう。Perl、PHPは括弧{〜}、Rubyは括弧{〜}またはdo〜endでブロックを定義しますが、パイソンではブロックの定義をインデントに任せます。

同じ数の空白数でインデントされている箇所をブロックとみなす分、パイソンで記述されたプログラムはブロックの閉じ括弧が少ない分、行数が少なくて済むという利点があります。

またブロックのインデントに使用する空白数はいくつでも揃っていれば同じブロックとして認識されます。一般的にはインデントに使用するのはタブを避け、空白数2つが主流になりつつあります。

# 基本構文
a = 1; b = 2
c = 3
if a > 0:
print(a + b + c) # 出力: 6

パイソンのプログラムの実行方法

パイソンのプログラムの実行方法も、とくにその他のLLと変わりありません。パイソンをインストールした後、which pythonでパスが通っていることを確認できればあとは対象のプログラムのテキストを拡張子.pyで保存し、ターミナル上でpython test.pyなどとすれば実行することができます。

# プログラム実行方法
$ vim test.py
# ソースコードを編集して保存
$ which python
/usr/bin/python
$ python test.py
6 # 基本構文のプログラムを実行

パイソンのインストール

Macを使用している方であればパイソンは事前にインストール済でしょう。ただしデフォルトでは2系なので注意が必要です。

より実践的にはプログラミング言語のバージョン違いは、深刻な問題を引き起こす可能性が高いので、同一OS内で複数のバージョンを切り替えることができるようにインストールを行います。詳細は割愛しますが、pyenvを利用することでこれが実現できます。

Windowsを使用している方であれば本家サイトにアクセスし、インストーラーをダウンロードしてインストールしましょう。

ただしより実践的には、Windows上で本格的にパイソンを使用するのは現状ではあまりオススメしません。Macを使うようにするか、Windows上でVirtualBoxによってubuntuなどの仮想環境を構築するのが現実的かもしれません。

とくにプログラミング初心者の方であればコマンドライン、いわゆるCUI(Character User Interface)に慣れないかもしれませんが、腰を落ち着けてプログラミングに取り組もうとする場合避けて通れない道なので頑張って学ぶことをオススメします。

パイソンの文字列

前述の通り、パイソンの文字列の取り扱いは注意が必要です。バージョンに応じて同じ文字列定義でも意味が違います。シングルバイト文字列であればダブルクォーテーション(“)またはシングルクォーテーション(‘)で囲まれた箇所を文字列として変数に代入することができます。

少し難しい話になるかもしれませんが、3系では同じダブルクォーテーション・シングルクォーテーションで囲まれた箇所はUnicode文字列として認識されます。2系ではUnicode文字列として認識されない点に注意が必要です。2系でUnicode文字列を定義するには先頭にuを付与する必要があります。

なお3系でも3.3以降であれば先頭にuを付与しても問題ありませんが、それ以前のバージョンではなんと先頭にuがある文字列定義はシンタックスエラーとなります。2系で書かれたソースコードをそのまま持ってきてもUnicode文字列が定義されている箇所でエラーになって動かないことが起き得ます。

これはパイソンの文字列回りの取り扱いを複雑にしている点であることを理解しておきましょう。

# バージョン確認
$ python --version
Python 2.7.5

# 文字列
# 2系
a = “a” # バイト列
b = u“あ” # Unicode文字列

# 3.0-3.2
a = “a” # Unicode文字列
b = u”あ” # SyntaxError

# 3.3以上
a = “a” # Unicode文字列
b = u”あ” # Unicode文字列

パイソンのprint文

print文もまた、2系と3系で文法が異なるので注意が必要です。printの直後の引数を括弧()で囲むか否かの点で異なります。2系ではprint直後の括弧()は必須ではなく任意です。3系ではこれが必須となりました。

print文直後の括弧()を必ず記述しておくようにすれば2系でも3系でも動作しますので、print文直後の括弧()は必ず記述するようにしましょう。

# print文
# 2系
print “a” # 出力: a
print(“b”) # 出力: b

# 3系
print “a” # 出力: SyntaxError: Missing parentheses in call to ‘print’
print(“b”) # 出力: b

パイソン(Python)案件の事例

shutterstock_279711647

ここまでパイソンでできる事や使い方までを見てきましたが、実際どんな仕事や案件があるのでしょうか?

今はやりの民泊事業の開発に携わりたいpythonエンジニア募集!!

勤務日:週2
単価:50万
勤務地:東京

こちらは週2日から可能な案件です。

デジタルマーケティング支援の会社でpythonエンジニア大募集!

勤務日:週5
単価:90万
勤務地:東京

こちらはフルコミットの案件ですが、高単価となっております。

こちらでは表示できる情報が限られてしまっていますので、ぜひ無料登録から案件をご覧ください。

pythonは流行りであるのももちろんですが、需要が高いので習得して損はないです。

python案件はこちらからご覧ください!

さらに詳しい案件の情報は下記に記事にまとめてあります。

フリーランスのPython案件の探し方

2016.04.15

まとめ:パイソン(Python)は需要の増える言語

shutterstock_376500178

いかがでしたでしょうか?

本稿では軽量プログラミング言語であるパイソン(Python)の基礎についてご紹介しました。

具体的には、パイソンの言語の歴史的側面を確認し、パイソンでできることを紹介。さらにパイソン入門として基礎的な文法や実行方法、インストール方法、文字列・print文のバージョン違いの取り扱いで注意するべき点を解説しました。

本稿では触れませんでしたが、パイソンを用いた機械学習を実践するためには、scikit-learnなどのライブラリをどう使うか学ぶ必要があります。また、パイソンを用いてwebアプリケーションを開発するためには、Django(ジャンゴ)などのwebフレームワークについて学ぶ必要があります。

まだまだ実践的なパイソンを学習する道のりは長いですが、本稿がパイソン初心者の一助となれば幸いです。

bn04

もし、今あなたが

・フリーランスになるか悩んでる
・自分に合った案件があるのか不安
・そもそも何から始めればいいのか分からない

などお困りであれば、ぜひ弊社ITプロパートナーズのサポート内容を確認してみてください!

登録後、専属エージェントに無料相談もできますよ!

※週2日 / 30万〜のフリーランス案件を紹介中です
※ご経験やご希望によっては案件を紹介できない場合がございますのでご了承ください。


よく見られてる関連案件

b80c977483d024c14549510e194361fe 2_anken 3_anken
The following two tabs change content below.

tchikuba

フリーを経てwebプログラマ。Ruby on Rails, Python, CoffeeScript, TDD, BDD, Lean, Agile, スモールビジネス, 機械学習, 人工知能, 投資, FX, 酒, 歌など。エンジニア出身の起業家になってもっとエンジニアを幸せにしたい。
freelance