【関連記事】【Pythonのライブラリ管理ツール】pipインストールを徹底解説!Windowsでも簡単?
Python2系と3系の違い
Pythonでは、バージョン2と3との間に互換性はありません。ソースコードの記載方法に違いがあるため、2系では動作していたスクリプトが、3系では動作しない可能性も充分にあります。また、その逆の場合もあります。ここでは、Python2系から3系へバージョンアップしたことによる注意点について詳しく紹介します。
Python2系の廃止
Python2系は2020年でサポートが終了しました。そのため、これからPyrhonの言語の勉強を始める方は、Python3系を選択してください。変更点はいくつかあります。例えば、print文が「print()関数」に変わったことや、long型が廃止されて「int型」として扱われるようになったことなどが挙げられます。
Python2系にあった多くの欠陥を修正するために、Python3系は生まれました。新しい言語の進化への道を開く一方で、互換性を失ったことは、Python3系を採用するのを著しく遅らせる原因となり、エンジニアの多くがPython3系への移行に乗り気ではありませんでした。
その理由は3つあり、1つ目が初めてのリリースからバージョン3.3までの数年間は、Python2系よりパフォーマンスが劣っていたことです。2つ目はサードパーティ製のツールやPythonのライブラリが、Python3系をサポートしていなかったことです。そして3つ目が重点を置いた機能に対して、当初はエンジニアが興味・関心をもっていなかったことが挙げられます。
対応ライブラリの数
2017年では、対応ライブラリの数はPython3系よりも2系の方が多いとされていました。そのため3系を用いて開発を始めたのに、目的とする機能を実装するためのライブラリがPython2系にのみ対応しているというこうことも少なくありません。Python2系を選んで実装する場合もありますが、標準ライブラリだけで開発できるプログラムの場合、Python3系を利用して開発するのがおすすめです。
パッケージの再構成
標準ライブラリにある「urllib」「xmlrpclib」などのパッケージが再構成されています。モジュール名が変わったり階層が変更されていたりする場合があるため、モジュールのインポートを実施する場合には再構成されたパッケージではないか注意する必要があります。
print文の関数化
Python3系から、printが関数化されました。以下に、Python3系と2系の記載方法を比較しています。
下記が、Python2系のprint文における記載方法の一例です。
print 'Hello, world!'
下記が、Python3系のprint文における記載方法の一例です。
print('Hello, world!')
Python2系と3系のソースコードの記載方法に相違はあるけれども、出力結果はどちらとも下記となります。
Hello, world!
Python3系からprint文が関数化されましたが、ソースコードの記載方法についてそこまで複雑ではありません。
文字列の型の変更
文字列の型が「unicode」に統一されました。Python2系の場合、文字列の型は「unicode」「str」の2種類があります。一方、Python3系の場合、文字列の型は「unicode」のみです。Python3系では文字列に「u」が付加されたとしても、エラーは出力されないようになりました。
例えば、Python3系を利用して下記のようにソースコードを記載したとします。
test_str = u'Hello, world!'
print(test_str)
実行結果は下記となります。
Hello, world!
変換ツール
Python2系のソースコードを3系へ変換するツールが整備されています。例えば「2to3」という変換ツールがあります。変換した際の差分を出力したりファイルに出力したりすることもできるため、バージョン移行を行う際に活躍が期待できるでしょう。また、Python2系のソースコードが3系ではどのようになるのか確認も可能です。
Python基礎知識
Python2系と3系の違いについて理解できたでしょうか。ここからは、Pythonに関する基礎知識について詳しく紹介します。
Pythonの概要
Pythonとは、1991年にオランダのグイド・ヴァンロッサムによって開発されたオープンソースのプログラミング言語の1つです。Pythonはシンプルでわかりやすいプログラミング言語で、ソースコードを記述しやすく、解読しやすくするために誕生しました。Pythonの特徴は、少ないソースコードで簡潔にプログラムを記述できること・ライブラリが充実していることで、Google・DropBox・Facebookなどのさまざまな企業で扱われています。
Pythonの需要と将来性
レバテックキャリアの調査によると、2019年におけるプログラミング言語別の求人割合ランキングでは、Pythonは3位になりました。なお1位はJava、2位はPHPです。Javaは既存システムでの需要は高いですが、新規に開発する案件では縮小している傾向にあります。PHPはフリーランス向けなどの求人・案件も豊富にあり、今後も需要が伸びていくことが予想されます。そしてPythonは、AIブロックチェーン技術などの需要が今後伸びていくことが推測されるため将来性があるといえるでしょう。 (参考:https://career.levtech.jp/guide/knowhow/article/606/ )
Pythonを利用してできること
Pythonは多種多様なWebアプリ開発に利用されることが多く、Pythonを利用して開発されたWebアプリの代表として、Instagram・YouTube・DropBox・Evernoteなどが挙げられます。近年よく使用されるアプリが多いことが理解できるはずです。ここからは、Pythonを利用してできることについて詳しく紹介します。
機械学習の開発が可能
Pythonは、AIを搭載したソフトウェアなどの機械学習を用いたソフトウェアの開発分野で幅広く活用しています。ソースコードが簡潔であることも含め、初めて機械学習を勉強する方にとって習得しやすい言語なため、機械学習をする際によく用いられるプログラミング言語です。またPythonは、統計処理や数値計算などに強みをもっています。これらの特徴から、機械学習・ディープラーニング・データ解析などに利用されることも多いです。例えば「TensorFlow」という機械学習におけるライブラリが、ディープラーニング・ニューラルネットワークの分野で活用されています。
ゲーム・アプリケーションの開発ができる
Pythonを利用することで、組み込みアプリケーション・デスクトップアプリケーションなどのさまざまなプログラムを作成することができます。また、ゲーム開発にも活用できることも特徴です。Pythonでは豊富なライブラリが備わっているため、幅広い分野で開発が行われています。
ブロックチェーン開発
Pythonは、ブロックチェーンと呼ばれるフィンテック業界における基幹となる技術に活用されています。主要なライブラリの1つである「hashib」というハッシュ関数が備わっている点・HTTPリクエストが操作可能な点・数値計算ライブラリが充実している点などの理由からPythonが利用されることが多いとされています。
データ処理・分析・解析
Pythonの特徴として、数値計算に強みをもっていることや連携できるシステムが多いことが挙げられます。例えば、大量なデータが保存されているデータベースの内部を計算して読みやすいように計算したり、膨大なエクセルデータの中から目的とするデータのみを抽出したりするデータ処理が可能です。
また、数値計算を効率化が期待できる「NumPy」・データ解析をサポートする機能の「Pandas」・配列や行列の演算を行う「SciPy」など、豊富なライブラリが備わっています。Pythonはデータ処理・分析・解析に利用されることも多いです。
Python2系と3系の違いを理解することが重要!
これまでに、Python2系と3系の違い・Pythonの基礎知識・Pythonを利用してできることについて詳しく解説しました。Pythonはシンプルで理解しやすい言語で、最先端技術に活用しやすいことから近年では注目を集めています。
Pythonは「アプリ開発」「機械学習」「ゲーム開発」「ブロックチェーン開発」「データ処理・分析・解析」など幅広い分野で活用されています。今後も需要は伸びていくことが予想されており、将来性も高いといえるでしょう。
注意点として、Python2系は2020年でサポートが終了しました。Python2系と3系の違いとして「print文の関数化」「パッケージの再構成」「文字列の型の変更」などが挙げられます。入門者などこれからPyrhonを学習する方は、Python3系を選択しましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから