この文書は、Linux magazine 2005年1月号〜3月号に掲載された連載の草稿を、(株)アスキーLinux magazine編集部の許可を得て公開するものです。校正前の原稿なので読みづらいところもあるかと思いますが、不明な点などありましたらコメントをお送りください。
文:堀川 久 Text: HORIKAWA Hisashi
(2012.9) Python 2.7で動作することを確認。
今回の目次:
多くの人が日常的にコンピュータに触れています。しかし、プログラミングしようという人は、表計算ソフトでマクロを作ったりする場合を含めても、ごく僅かです。
プログラミングは、決して特別な技術ではありません。コツさえつかめば、誰でもできるようになります。
プログラミングができると、毎回手でしていたことを自動化できるようになります。例えば、ファイルとして保存されているデータをいろいろな方法で集計したり、加工したりできるようになります。いちいち手作業でデータを操作したりするのが面倒だと感じるなら、プログラミングを覚える価値があります。
(2015.6.24 更新)
プログラムはどうやって作るのでしょうか。
プログラムを作るには、まず、設計を作ります。
プログラムの設計は、例えば、こういう入力があったらこのように計算する、このような操作があったら、画面にこれこれを表示する、このボタンが押されたら何か出力する、というような、コンピュータに対する指示をまとめたものです。
この設計を「コンパイラ」というプログラムに通すと、PC 上で実行できるプログラムができあがります。このとき、元の設計のことを「ソースコード」といいます.
ソースコードを読み込んで、その場で内容を解釈して実行するプログラムもあります。このプログラムのことを「インタプリタ」といいます (図2)。
インタプリタに渡すソースコードを「スクリプト」ということもあります。コンピュータに対する指示、という意味では同じものです。
プログラミングでは、ソースコードを書き、ファイルとして保存します。
01-01.py
インタプリタで実行します。ソースコードの指示にしたがって、コンピュータが計算と出力をおこないます。
$ python3 01-01.py 10 * 2 => 20
プログラム (のソースコード) を書くには、
計算のさせ方、どのような順序でソースコードを解釈するのか、など一定の文法があります。加えて、計算する命令、データファイルを開く命令などの, いろいろな決められた単語があります。
ただ、文法も, 命令の単語も、最初から一から十まで完全に覚えなくても大丈夫です。必要なときにマニュアルで調べることもできますし、使っているうちに覚えてきます。
プログラミングの学習に当たっては、ソースコードを書くつど, その場ですぐ実行できたほうが、試行錯誤しやすく、手軽です。この連載では、インタプリタを使い、コンパイラで実行形式に変換することはしません。
プログラム (のソースコード) を書くための文法とボキャブラリを併せたものを「プログラミング言語」といいます。
プログラミング言語は一つだけではありません。世の中には星の数ほどプログラミング言語があります。これらは、目的 (製作したいプログラムの種類) によって得手不得手があるため、使い分けられています。例えば、Windows用ですが、HSP (HSPTV!) というゲーム作成のための言語は、ゲームを作るための便利なボキャブラリが揃っていて、威力を発揮します。
とはいうものの、作るプログラムごとに毎回別の言語を覚えるのは大変です。そのため日常的には、汎用的なプログラミング言語を使います。
この連載では、「Python(パイソン)」というプログラミング言語を使います。
Pythonの特徴、どのように使われているか、などを簡単に説明します。
Pythonは、1990年代初頭に登場した、比較的新しい汎用的なプログラミング言語です(新しいといっても、すでに10年以上になりますが)。
Pythonは、便利で直感的な文法は採り入れるが、複雑な文法の拡張は行わない方針で開発されています。そのため、シンプルで明確な文法であり、習得が容易です。他人が書いたプログラムであっても、かなり読みやくなっています。
プログラミング言語の優劣の基準の一つは、どのぐらいプログラムが簡潔に書けるか、です。同じことをするプログラムを2種類のプログラミング言語で書いてみます。これは、あらかじめ用意した1, 5, 10という数値を順番に表示するプログラムです。
C言語で書くと、次のようになります。
#include <stdio.h> int main() { const int ary[] = {1, 5, 10, -1}; int i; for (i = 0; ary[i] != -1; i++) printf("%d\n", ary[i]); }
一方、Pythonで書くと次のようになります。
01-02.py
実行結果は、いずれでも同じです。
1 5 10
このように、Pythonは非常に簡潔に書けます。読みやすさとのバランスが優れています。
Pythonには次のような特徴があります。
特に、ライブラリの充実は重要で、標準ライブラリとして HTML解析、CGIライブラリ、eメール操作、XML操作などが添付されています。また、標準添付されない追加ライブラリについても、様々なものが開発されています。
ツールというものはある程度メジャーなものを使ったほうが便利なことが多いものです。プログラミング言語でも同じで、その使い手が多いと、インタプリタの改良が早く進み、追加ライブラリの開発も活発になり、より使いやすく、強力になっていきます。その点、Pythonはどうでしょうか。
The RedMonk Programming Language Rankings: January 2015 – tecosystems は、定期的に、プログラミングのランキングを出しています。
メジャーなプログラミング言語;
2015年1月 | 2014年6月 |
---|---|
1. JavaScript ↑ | 1. Java |
2. Java ↓ | 1. JavaScript |
3. PHP | 3. PHP |
4. Python | 4. Python |
5. C# | 5. C# |
Python は上位で安定していて、十分メジャーです。別の観点で、いい salary の見込めるプログラミング言語ランキングでも、Python は上位です。
Pythonで書かれたソフトウェア (プログラム) には、次のようなものがあります。ほんの一例;
デスクトップ向けのソフトウェアからサーバ構築のものまで、多岐に亘るものがあります。そのほか、GIMPのプラグインなど、プログラムの拡張モジュールとしてもよく使われています。
Linuxでは、知らず知らずのうちにPythonで書かれたプログラムをよく使っています。Linuxディストリビューションのひとつ、Fedora Core (フェドーラコア) では、次のものがPythonで書かれています。
Pythonは幅広く使われており、特にLinux使いにとっては、とても馴染み深いものです。
大抵のLinuxディストリビューションでは、あらかじめPythonインタプリタがインストールされているので、自分でインストールする必要はありません。
例えば, Fedora 17 Linux には, バージョン2.7.3があらかじめインストールされています。2012年現在、バージョン2.7.xと3.2.xの二つがリリースされていますが、普通に使う分にはバージョン2.7.xがいいでしょう。
(2015.6.25) Fedora 22 には, Python バージョン3.4.2 とバージョン2.7.10 がインストールされています。バージョン2.7がバージョン2系列の最後のバージョンで、今後改良されることはありません。バージョン3.0は2008年にリリースされ、すでに成熟しています。今から選ぶなら、バージョン3.xでしょう。
Red Hat Enterprise Linux / CentOS / Fedoraでは, 次のようにすれば、インストールされているかどうかとインストールされているバージョンを確認できます。
$ rpm -q python python-2.7.10-1.fc22.x86_64 $ rpm -q python3 python3-3.4.2-4.fc22.x86_64
もしインストールされていない場合は、使っているディストリビューションのサイトからダウンロードし、インストールしてください。
この連載では、ウィンドウを表示させたりするため、Tkinter というパッケージも必要です。インストールされているかどうかは、Python3 を起動し (後述: 対話的に使う)、「import tkinter」と入力することで確認できます。インストールされている場合は、画面2のように何も表示されません。インストールされていない場合は、画面3のようにエラーが表示されます。
インストールされていないときは、rootユーザになり、次のようにしてインストールします。
$ su # yum install python3-tkinter
なお、yumコマンドを使うときはインターネットに接続されている必要があります。
コンソールで単に python3 コマンドを実行すると、対話モードで起動します。対話モードとは、1行1行ソースコードを打ち込み、そのつど実行されるモードです。エラーがある場合は、その場で指摘されます。ちょっとした動作確認や簡単な計算に便利です。
「>>>」がプロンプト(入力を促す文字)です。ここに直接ソースコードを入力していきます。Enterを打つと, すぐその結果が表示されます。試しに簡単な式を入力してみます(画面4)。
対話モードから抜け、pythonを終了させるには、Ctrl-Dキーを打ちます。
対話モードは手軽ですが、その場限りでプログラムは消えてしまいます。何度も使用するプログラムを書くのには向いていません。通常は、ソースコード (スクリプト) をファイルに保存し、それをpythonコマンドで実行します。
スクリプトを書くには、テキストエディタまたは開発環境が必要です。
テキストエディタ;
開発環境;
Professional Edition | 個人ユーザ $99 (各種割引あり), |
Community Edition | 無償, Apache 2 License. |
最初は、テキストエディタでいいのでは、と思います。