Pythonプログラミングの基礎【現役エンジニアがわかりやすく解説】

PROGRAM

Pythonプログラミングの基礎を知りたい方に。

この記事を読まれている方は、

  • Pythonのプログラミングがどんなものか知りたい
  • Python言語の簡単な書き方が知りたい
  • Pythonが使われる場面を知りたい

おそらくこのように考えている方が多いと思います。

この記事を書いている私は、
プログラミング未経験から転職を果たした現役のWeb系エンジニアです。
エンジニア歴は3年ですが、本業とは別にフリーランスの副業で月10万円ほど、多いときで20万円ほどの収入があります。

この記事では、現役のエンジニアが、Pythonプログラミングの基礎を解説しています。

プログラミング言語のPythonの特徴

プログラミング言語のPythonの特徴

Pythonはプログラミング言語のひとつで、動的型付けのスクリプト言語で、オブジェクト指向型の言語です。

動的型付けとは、簡単に言うと、データを文字列型や数値型、論理型などに分ける必要がないということです。

スクリプト言語とは、プログラム実行前にコンパイルという、書いたプログラム文を中間言語に変換する作業の必要がない言語のことで、書いた後はすぐにプログラムを実行することができる言語のことです。

一方、スクリプト言語と対をなすコンパイル言語とは、プログラムの実行前に、開発者の方でコンパイラーを使って構文チェックなどをしたうえで中間言語に変換しないと動作しない言語のことです。

一般に、スクリプト言語は、処理速度がコンパイル言語に比べて遅くなります。速度が求められる処理では、コンパイル言語が使用されることが多いです。
Pythonの速度の目安としては、Javaよりは確実に遅く、PHPよりも遅いかなというイメージです。

オブジェクト指向型言語とは、オブジェクトという概念を持つ言語のことで、簡単に言うと、データ構造として、配列や構造体に加えて、オブジェクト(クラス)があるということです。
オブジェクトのおかげで、ソースコードのメンテナンスがしやすかったり、機能の流用ができます。

Pythonの良さとして、動的型付けでスクリプト言語のため、比較的簡単にプログラムを組み、実行することが挙げられます。
そして何より、Pythonを使う最大のメリットとしては、機械学習系のライブラリがとても充実しているということでしょう。流行りのAIもPythonをベースに開発されているものが多いです。

また、AI以外にも、例えば、ラズベリーパイにPythonを入れて身近にあるもので色々なことを試すというのがちょっと前に流行りました。

実際に私も、ICカードを読み取って内容を表示するプログラムを作ったり、画像を認識して文字を抽出するプログラムを作ったりしていました。

統合開発環境(IDE)に気になっている方もいそうですが、PythonにはPyCharmというIDEがありますが、Atomなどエディタも今は充実しているので、どちらでも自分の使いやすい方を使われると良いと思います。IDEのメリットは、プロジェクトの管理やデバッグが行いやすいなどが挙げられます。

Pythonの用途

Pythonの用途

Pythonは動的型付けのスクリプト言語ということもあり、さほど速度が重視されない開発で利用される言語です。
Web系の言語として見ると、PythonはPHPやRubyよりは開発に採用されておらず、比較的少数派に思えます。
MVCフレームワークがないわけではなく、Djangoというよく知られたものがありますので、フレームワークを使ったWeb開発自体は可能です。

しかし、Pythonが採用されるケースは、ほとんど機械学習を目的とした開発に限られる気がします。
NumPyやPandas、scikit-learnなどの関連するライブラリが豊富なので、他の言語よりも機械学習の用途に向いているのです。

また、Pythonは他の言語と比べると記述も容易で、for文やif文などの終わりを括弧で示さず、インデントだけで書くことができます。
そのため、C言語系統の言語ではあるのですが、従来型の言語とはかなり見た目が異なっています。

初心者の方は書きやすいと言われる方もいますし、逆に経験者の方は風変りな書き方でかえって使いづらいと言われる方もいます。
他の言語を知っていると、ちょっと特異に感じてしまう言語かもしれません。

Pythonの書き方

Pythonの書き方

ここでは簡単に書き方を少しだけ紹介します。実際に始める気になったら、ぜひ参考書などの教材を参考にして、試してみて下さい。

Hello World!を画面に出力する

まずはお決まりのHello World!という文字列を画面に出力する方法から。

print("Hello World!")

これで出力することができます。
C言語やJavaなどとは異なり、main関数を書かなければ動かないということはなく、いきなりそのまま命令文を書くことができます。クラスもなしで動くので、オブジェクト指向は強制されていません。

コンパイル言語とは異なり、スクリプト言語であるPythonはコードを書いて保存すれば、すぐにでもプログラムを実行することができます。

Pythonはインデントで処理の開始や終了を判断しています。
余計なインデントがあると動かない可能性があるので、そこだけは他の言語と違い、注意が必要です。

変数宣言と分岐処理

次は少し踏み込んで、変数宣言と分岐処理をしてみます。

age = 19;
if age < 20:
    print ("未成年");
else:
    print ("成人");

上記の例では、まずageという数値型の変数を作り、その中に19という数値を入れています。
次にageが20未満であれば”未成年”という文字列を、それ以外であれば”成人”という文字列を出力するような分岐処理をしています。

配列と繰返処理

続いて、配列の使い方と繰返処理について、解説します。

ここでは配列を作って、以下のようにデータを出力することにしましょう。

佐藤,田中,小林

これを出力するコードは以下です。

students = ['佐藤', '田中', '小林']

for index in range(len(students)):
    print(students[index],end="")
    if index < len(students)-1:
        print(",",end="")

上記の例では、まず配列studentsに「佐藤」「田中」「小林」の3つの文字列を格納しています。
その後、数値型の変数index(カウンタ用途)を0に初期セットし、配列studentsの要素の数に到達するまでループでindexを1ずつ増やしてまわしていきます。その際に、print関数を使い、配列studentsのindex番目の要素の値を出力し、最後の要素以外、その後に「,(カンマ)」を出力しています。

構造体の取り扱い

最後に構造体の取り扱い方法について解説します。

ここではエクセルのようなデータを作って、以下のようにデータを出力することにしましょう。

名前:佐藤,性別:男性
名前:田中,性別:女性
名前:小林,性別:女性

これを出力するコードは以下です。

first_row = {"A":"佐藤","B":"男性"}
second_row = {"A":"田中","B":"女性"}
third_row = {"A":"小林","B":"女性"}
excel_data = [first_row, second_row, third_row]

for index in range(len(excel_data)):
    print("名前:"+excel_data[index]['A'],end="")
    print(",",end="")
    print("性別:"+excel_data[index]['B'])

上記の例では、まずfirst_row, second_row, third_rowという3つの連想配列を作り、それぞれのAというキー(列)に名前を、Bのキーに性別の値を入れていきます。
そして、それら全てをexcel_dataという配列に入れます。
その後、数値型の変数index(カウンタ用途)を0に初期セットし、配列excel_dataの要素の数に到達するまでループでindexを1ずつ増やしてまわしていきます。その際に、print関数を使い、配列excel_dataのindex番目の要素の中のA列とB列の値を出力しています。

まとめ:Pythonは機械学習などのライブラリが多く、楽しい言語

まとめ:Pythonは機械学習などのライブラリが多く、楽しい言語

Pythonの良さを簡単にまとめると、以下のとおりです。

  • コードが書きやすい ← 書き方がシンプル
  • すぐに実行できる ← スクリプト言語
  • 機械学習などに強い ← 様々な分野のライブラリが豊富

つまり、機械学習をはじめとするライブラリが豊富で、プログラミングをしていて達成感や楽しさを感じられる言語です。

機械学習で今話題の言語なので、今後も急激に衰退するなどといったことはなく、AIの分野で安定して長く使える言語なのではないかと思います。

Pythonは独学が可能な言語だとは思いますが、機械学習の分野は本質的には数学の知識などが必要になり、大学で学ばれてきた方でないと少し難しいと思われます。
もし独学でできなさそうな方は、プログラミングスクールも手段の一つに入れると良いと思います。