【初心者用】Pythonが何なのかメリット・デメリットの面からまとめてみた

タイトル通りですが、Python初心者が勉強してみて感じたことをまとめていきます。

なるべく初心者にもわかりやす~いように専門用語をなるべく省いたり嚙み砕いたりしつつ説明します。

1. そもそも Python って何?

Pythonとはプログラミング言語(C言語とか、javaとか)の一種です。

「機械学習」や「データ分析」といったキーワードで近年注目された印象が強く、歴史が浅いように見えますが、実は1991年生まれとだいぶ古いです。

具体的にはjava(1995年生まれ)や、C#(2000年生まれ)より古株です。

無償で使用でき、文法がシンプルでわかりやすいため、初心者でも学びやすい言語となっています。

2. Pythonのメリット

コードの読み書きがしやすい

よく、このように言われることが多いPython。

それには、以下の2つの理由があります。


・コード量が少なくて済む




Pythonは多言語と比較して同じ処理を行うのに必要なコード量が少ない傾向にあります。

試しに、javaと比べてみましょう。

以下は画面上に「Hello,World!」という文章を表示させるプログラムを比較したものです。


  1. #javaの場合
  2. class Hello{
  3.   public static void main(String[] args){
  4.     System.out.println("Hello,World!");
  5.   }
  6. }



  1. #Pythonの場合
  2. print("Hello,World!")



このように、Pythonは短いコードでプログラムを作ることが可能です。

これは大きなメリットの一つと言えます。


・オフサイドルールがとられている




Pythonが読みやすい理由の一つに、オフサイドルールがあります。

これは、ブロック(コードのかたまり)の表現に「{}」を用いず、インデント(行下げ)のみで行っているというものです。
以下は、年齢が成人か未成年かを判別するコードです。


  1. #javaの場合
  2. public class age {
  3.     public static void main(String[] args) {
  4.   &nb

3. Pythonのデメリット

実行速度が遅い

メリットの面でも説明したしたが、Pythonはインタプリタ型、コンパイルせずにプログラム実行ごとにソースを読み込む言語です。

これは、コーディングしてすぐ動かせるという利点を持つと同時に、欠点も孕んでいます。

それが、「実行速度の遅さ」です。

コンパイルする、ということはただソースコードを機械語に変換して実行ファイルを作成するというだけでなく、効率的にコンピュータが実行できるようにするための編集も行われるため、高速な処理を可能とします。

プログラムを逐次解釈して実行するインタプリタ型であるPythonの方が遅いのは当然ですね。


また、Pythonはインタプリタ型であると同時に、動的型付け言語であります。

動的型付け言語とは、コーディングの際、言語変数などに対して、データ型の宣言がいらない言語のことで、直接値を代入することができる分、コード行数を減らすことができます。

また、データ型を考慮しなくてもいい分、比較的簡単に書けるようになりますね。


しかし、データ型をあらかじめ決めるということは言い換えれば「変数ごとのデータ型を決められる」、メモリ領域を最適化することで動作を早くできるということでもあります。

逆にデータ型を決めない、「決められない」と、最適化させたものと比べるとメモリ領域に無駄が出てしまいます。

つまり、その分遅くなってしまうということです。


以上のように、「インタプリタ型」であり、「動的型付け言語」でもあるという二重の意味で、Pythonは実行速度が遅いプログラミング言語です。

よって、基幹システム等の重要なシステム、スマホアプリやゲームの開発には不向きと言えます。


とはいえ、処理速度の遅さは「他のプログラミング言語と比較して」の話です。

人間の手作業に比べれば圧倒的に時間を短縮できるため、使いどころが重要と言えるでしょう。

4. 結局、Pythonはどんな言語なの?

Pythonは、長所と短所がはっきりしているプログラミング言語です。

開発の高速化を見込める読み書きのしやすさ。

ライブラリの豊富さによる、汎用性の高さと一部専門分野への強さ。

反面、他プログラミング言語に対して処理速度という面で劣っている。


そのため、目的に合わせて使用するプログラミング言語を選んでいくことが重要となります。