とらりもんHOME  Index  Search  Changes  Login

とらりもん - python入門: pythonno Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

pythonをちょっと体験して, なんとなく感じがわかったので, pythonの概要を頭に入れよう。

!pythonは人気のプログラミング言語
pythonは, 最近もっとも人気のあるプログラミング言語のひとつである。特に, 人工知能や機械学習といったデータサイエンスでよく使われる。

!pythonはスクリプト言語
さきほどの例で見たように, pythonは, コマンドを組み合わせてテキストファイルにしたプログラムを実行することもできるし, CUIでぽちぽちと1行ずつコマンドを打って実行することもできる。前者と後者で使うコマンドは同じである。このように, 同じコマンドをCUIとプログラムの両方で実行できるようなプログラミング言語を{{fontc(スクリプト言語, red)}}という。この「スクリプト」という語は, 「シェルスクリプト」の中のそれと同じ意味である。シェルスクリプトも, Linuxシェルで打つコマンドと同じものを使って作る, 1種のプログラムである。

ちなみに, 世の中にはスクリプト言語ではないプログラミング言語もある。CやC++, Java, FORTRANなどがその例である。一方, スクリプト言語としては, pythonの他に, ruby, Javascript, perlなどがある。

!pythonはオブジェクト指向
計算機のプログラムは, 本質的には, 計算機に一連の指示を伝えるものである。その「指示の伝え方」は, IT技術の進歩に伴って進歩している。昔は「単に細かい指示を順に並べたもの」だった。しかし, それだとホントにこまごましたことまで全部明確に指示しなければならないので, 大変だった。そのうち, よく使う指示はひとまとめのパッケージにして, あらかじめ名前をつけて別の指示として定義しておき, 必要に応じてそれを呼び出すというやり方が賢いということがわかってきた。さらに時代が進むと, 指示によって計算機が処理するデータも指示と一緒にパッケージにする方が賢いということがわかってきた。そのような発想を「{{fontc(オブジェクト指向, red)}}」という。

オブジェクト指向がどういうものかはこのようなざっくりした説明ではなかなか伝わらない。とりあえず諸君は「オブジェクト指向」という言葉を覚えておこう。そのうちわかる。そして, pythonはオブジェクト指向なのである。オブジェクト指向の言語は, python以外に, C++, Java, rubyなどがある。オブジェクト指向でない言語の例として, C, FORTRANなどがある。

!pythonはオープンソース
pythonのコマンドやプログラムを走らせるには, pythonシェル等が必要だが, それらはオープンソースソフトである。従って, pythonを使うのに, ソフトを買ったりライセンス料を払ったりする必要はない。君が自分のパソコンでpythonをやりたいなら, インターネットから必要なソフトをダウンロードしてインストールすればよい。

!pythonはたいていのコンピュータで動く
世の中のほとんどのコンピュータは, Windows, Mac, Linuxという3つのOSのうちいずれかで動く。そして, pythonはこれらのいずれのOSでも動く。従って, pythonは世の中のほぼ全てのコンピュータで動く(よほど古いやつや特殊なものでないかぎり)。

!pythonにはバージョン2とバージョン3で互換性が無い
pythonに限らず, 多くのソフトウェアは, 開発が進み改良が進むにつれて, 「バージョン」が上がっていくものである。その過程では, ふつう, 古い機能を温存したまま, 新しい機能が加わっていくのだが, 古い機能と新しい機能がしっくりいかなくなると, 思い切って古い機能を捨てて設計を刷新することがある。

pythonでは, それが「バージョン2」から「バージョン3」に移るときに発生した。そのため, バージョン2のpython (それをpython2という)で組まれたプログラムは, バージョン3のpython (それをpython3という)ではうまく動かないことが多い(つまり互換性が無い)。従って, python2とpython3は「よく似ているけど別のプログラミング言語」と考えるほうがよい。

この授業では, python3を学ぶ。ネットや本のコンテンツには, python2を想定して書かれているものもあるが, 当然, それらはpython3ではうまくいかないことがあるので要注意だ。

さきほどの例(うずまきの図を書くプログラム)で, Linuxシェルから
$ python3 test.py
と打ったが, この3は, python2ではなくてpython3で動かしなよ, という意味を込めた3なのである。

!pythonシェル(インタラクティブシェル)には主に2種類ある
先ほどの例では, $ ipython3というLinuxコマンドでpythonシェルを立ち上げた:
$ ipython3
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]:
これとは別に, $ python3というLinuxコマンドでもpythonシェルが立ち上がる。やってみよう:
$ python3
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
ここにpythonのコマンドを打てば走る。>>>がそのプロンプトである。抜けるにはCTRL+dでOK。

 本やネットのコンテンツでは, pythonシェルとしてこちらを使うことを想定したコンテンツも多い。しかし, 実際はipython3の方が多機能で使いやすいので, 諸君には, pythonシェルとしてはpython3ではなくipython3を使うことを薦める。というのも, ipython3では,
* Linuxシェルのコマンドもそのまま走らせることができる。
* pythonスクリプトを「run」というコマンドで手軽に実行できる (run test.py)のように。
などのメリットがある。

[レポート問題2: 課題2-1] $ ipython3 と, $ python3 の2つのコマンドをそれぞれ打ち, それぞれの結果のスクリーンショットを提出せよ

レポート問題3: $ ipython3 ではできるが, $ python3 ではできないこと(機能)にはどういうものがあるか? いろいろ試して見つけてみよう(すぐわかるはず。そして「ipython3の方がだんぜん使いやすい!!」と思うはず(笑))