Python入門(1) Python世界に入る

Pythonの世界との応答にはPython Shell がしばしば使われる。 Python shellの起動には

の2つの方法がある。

Python shellはPythonスクリプトを1行ずつ実行し、その結果を知ってスクリプトの働きを確認あるいはスクリプトの誤りをデバッグする手段としてはたいへん都合がよい。 しかし、スクリプトの一括して実行させるという立場でのプログラミング学習からは混乱を招きやすいことや、ファイル管理などパソコン操作を自覚的に行えるようにするために、ここではPython shellを使った説明は最小限に留めることにする。

ショートカットをデスクトップに

Python IDLEや、[スタートメニュー]/[プログラム]/[-----プログラム-----]内の[サクラエディタ]/(テキストエディタ参照)およびコマンドプロンプトの実行はPythonプログラミングでは常に利用するアプリケーションだ。

これらのショートカットアイコンをデスクトップに登録しておくと、作業効率は格段に向上する。 是非登録しておこう。


pythonスクリプトをファイルに保存する

スクリプトはテキストエディタを使って書く。 保存先は原則的に スクリプト専用フォルダ内に、 Pythonファイル名の原則にしたがって保存するのが原則だ。

たとえば次のように2行のスクリプトを入力し myfirst_script.py として保存しよう。 保存場所を Z:\myscript とした場合、ファイル名の正確な表示は Z:\myscript\myfirst_script.py である。 スクリプト保存のタイミングは可能な限り早いように心がける。 途中で構わないから、まず適切なファイル名を考案してファイル内容を保存しよう。

print "Hello, Python!"
print "Let's enjoy programming"

スクリプトのファイル名としてどのようなものが相応しいか常時熟考する習慣をつけよう。

演習: 実際に上のスクリプト myfirst_script.py を書いて、目的のフォルダ内に保存しなさい。 実際にファイルが保存されたことを毎回確認しなさい。 目的のフォルダ内にちゃんと指定したファイル名で保存されたことを毎回確認することはパソコン作業の基本中のキホンだ。

参考:Python IDLEでスクリプトを書く

ここででは非推奨としている(それなりの理由がある)。

Python IDLEを使ってpythonスクリプトを書くこともできる。 下図左(クリックして拡大)のように、[ファイル]メニューから[New File]を選ぶ。 現れたウインドウ(タイトルバーは *Untitled* となっている)にスクリプトを記述する。


Untitledのままではpythonスクリプトを実行できないので、[File/Save] または [File/Save As..] でマイドキュメント内の専用フォルダ python 内に myfirst_script.py として保存する。 どのタイミングで保存してもよいが、スクリプト途中で構わないから、まず適切なファイル名を考案して保存しよう。

スクリプトのファイル名としてどのようなものが相応しいか常時熟考する習慣をつけよう。

pythonスクリプトを実行する

Pythonスクリプトの実行には次の2つがあるが、コマンドラインからの実行が本質的である。

コマンドラインから実行

pythonスクリプトは ターミナルウィンドウ(Windowsでは「コマンドプロンプト」ということが多い)のプロンプト $(自分の環境に合わせて適宜解釈する) の後に、次のようにコマンド名 python 続けてパラメータとして(保存場所を含めて)スクリプトファイルをセットして起動する。

$ python スクリプトファイル名

こうしたスクリプトの実行をコマンドラインからの実行という。 プログラムの実行においてはこの方法が本質的で、初学者がまず体験すべき最初の目標である。

以下は、コマンドラインからの実行の詳細を紹介する。 コマンドプロンプトのショートカットとその起動を前提とする。

コマンドプロンプトと作業位置

右図(クリックして拡大)は[コマンドプロンプト]をクリックしてZドライブに移動した様子である。 プロンプトに Z:\> と現れていることに注意しよう(現在の作業フォルダが Z:\ であることを示している)。

さらに、 Zドライブにスクリプト専用フォルダを用意し、その場所指定法を知るで行ったように、Zドライブ内にPythonスクリプトファイルを格納する専用フォルダ myscript(右図ではpythonとなっている)を作成し、その位置が Z:\myscript と表記される(右図の場合では Z:\python)ということも思い出そう。


cd 作業フォルダの移動

作業フォルダを移動するコマンド cd を使って z:\myscript に移動する。 プロンプトの変化に気をつける。

Z:\> cd myscript
Z:\myscript>
左図(クリックして拡大)では、 ドライブを c: から z: に変更し、Z:\python へと作業フォルダを移動した様子を示している。 フォルダ移動コマンド cd を使うと。


演習: コマンドプロンプトから、自分用に用意したスクリプト専用フォルダがある場所に作業位置を変更する命令を実行してみなさい。

dir : ファイル及びフォルダを一覧

作業フォルダ内にあるファイルおよびフォルダを一覧するコマンドは dir である( 上図では、作業フォルダ Z:\python> 内にあるファイルまたはフォルダを一覧するコマンド dir を実行している)。

演習: スクリプト専用フォルダがある位置に作業位置を変更し、コマンドプロンプトにコマンド dir を入力すると、保存しておいたスクリプト myfirst_script.py が表示されることを確かめなさい(上の左図参照)。

コマンドラインからスクリプトを実行する

pythonスクリプトの実行には、プロンプト $ (プロンプト記号 $ は自分の環境に合わせて読み替える)コマンドラインに次のように入力する。

$ python スクリプトファイル名

これによって 次の動作が実行される。

  1. pythonプログラムを起動し
  2. スクリプトを記述しているファイルをpython世界に渡す
Pythonは渡されたファイルを先頭から読み込んで、1行ずつスクリプトを解釈、実行する。 スクリプト myfirst_script.py では次のような結果を得る。 1行目がコマンドライン入力、2と3行目がその実行結果、4行目は再びコマンドプロンプトに戻っている。

Z:\myscript> python myfirst_script.py
Hello, Python!
Let's enjoy programming
Z:\myscript>
演習: 実際にコマンドラインから作成した myfirst_script.py を実行し、その様子を確かめなさい(上の左図参照)。

コマンド python を省略して、スクリプト名だけを入力して「実行して」いる者がないだろうか。 初心者がそのような方法でスクリプトを実行させることは、プログラム動作に対して大きな誤解を生んでしまい、セキュリティ上の危険も生んでしまう

Pythonスクリプトが保存されたフォルダで作業しており、しかもファイル拡張子と実行プログラムの対応を設定しているときだけ、結果として上手くいくだけである。 面倒でも上記のようにコマンド python にスクリプトファイルを渡すように心がける。


Python IDLEを使う

Python IDLEから既に保存してあるスクリプトを実行または編集することができる。 [File/Open...] を選択する。

拡張子 .py をつけて保存したスクリプトを実行するには [Run/Run Module] を選ぶ。 もし右図のようにスクリプトが保存されていなければ、保存するように促されるはずだ。


[Run/Run Module]を実行すると、Python Shellに次のような実行結果が表示される。

>>> 
======================= RESTART Z:/python/myfirst_script.py =========================== 
Hello, Python!
Let's enjoy programming
>>>

ただし、スクリプト myfirst_script.pyの本当の実行結果は

Hello, Python!
Let's enjoy programming
だけで、======================= RESTART .... の行や結果最後の >>> はPython Shellのインターフェース反応である。

演習: 作成した myfirst_script.py をPython IDLEから実行し、上記のようになることを確かめてみなさい。

スクリプトにはコメントを付ける

スクリプト内に適切なコメントを付けるはプログラムの可読性を高める。 適切なコメントを付けることは、良きプログラマーのための第一歩である。

スクリプトが何を実行しているのか、その実行結果から分かるようにスクリプトを書くことは大切だ(利用マニュアルを読まずにスマートフォンのアプリを利用できることはそうした配慮のおかげだ)。 スクリプト自体は言語規則の範囲で記述されねばならないが、どんな意図を持ってスクリプトが書かれたのかをスクリプトに埋め込んでおくことはプログラミングにおける常識だ(自分の書いたプログラムも忘れてしまうし、ヒトの書いたプログラムを読むことは容易いことではない)。


スクリプト内に説明的なテキストを追加することをコメントという。 Pythonでは『特殊文字 # で始まる行末までの文字列』がコメントとして扱われる。 たとえば以下の1,2,4行目はコメントでスクリプト(との実行結果)には影響を与えない。

# wrote April 1st 2016
# greeting
print 'Hello, world'
# how I feel now
print "I'm using Python"

Pythonにおける日本語コメント

Pythonではスクリプトを記述している文字符号化を明示する必要がある。 ASCII文字列以外の文字列をスクリプト内で記述するとたとえそれが文字 # で始まるコメント内であったとしても、スクリプト実行時にエラーが発生する。

演習: 作成した myfirst_script.py を、たとえば次のようにコメントを追加編集し保存して実行を試み、その様子を確かめなさい。
# まずは挨拶
print 'Hello, world'
# 今の情況を報告
print "I'm using Python"

# で始まるコメント内でも日本語を記述するためにはスクリプト冒頭に、スクリプトを記述している文字符号化を宣言しなければならない。 次のように前もって-*-(ハイフン+アスタリスク+ハイフン)を使って、次のようにスクリプトに追加する必要がある。

スクリプトがshift_jis で書かれているにもかかわらずutf-8で書いていると宣言した場合など、対応関係が破られると、スクリプト実行時にエラーが発生する。 スクリプトが shift_jis で保存されたのであれば、Shift_JISで宣言しておかねばならない。

符号化方式スクリプトでの宣言
utf_8# -*- coding: UTF-8 -*-
shift_jis# -*- coding: Shift_JIS -*-
iso2022_jp# -*- coding: ISO-2022-JP -*-
euc_jp# -*- coding: EUC-JIS -*-

たとえば、スクリプトがutf-8で書かれているのであれば、次のようにする。

# -*- coding: UTF-8 -*-
# まずは挨拶
print 'Hello, world'
# 今の情況を報告
print "I'm using Python"
演習: 自分の書いたスクリプトの文字符号化が何であるかを知るにはテキストエディタでファイルを開いてみればよい。 実際に文字符号化法を確認して(皆同じではなく、それぞれの設定で異なっているはずだ)、コメントに日本語が入っても正常に実行できるようにスクリプトを編集保存して、実行して確かめなささい。

参考

Python IDLEを起動し、Python Shellを表示する

Python用の統合開発環境(IDLEと略記:Integrated DeveLopment Environment)を使ってPython shellを起動できる。

Python IDLEは スクリプトを記述してファイルに保存して実行したり、Pythonスクリプトをstep by stepで実行したりすることもでこる(これがどのような意味かはプログラミングするとわかってくる)。

Python IDLEの起動には、下図左(クリックして拡大)のように [スタートメニュー]/[プログラム]/[-----プログラム-----]内の[Python 2.7]/[IDLE(Python GUI)] をクリックする。

IDLE(Python GUI)を起動すると、下右図(クリックして拡大)のようにウインドウが表示される。 この中の世界をPython Shellという。 Python shellはPython世界とのインターフェースを提供する(コマンドラインでPythoin Shellを起動することもできる。 これについては改めて後述)。


上左図のように、Python shellが起動されると次のようなPython情報(バージョンなど)が表示されてた後にプロンプト >>> が現れる。

Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:40:30) [MSC v.1500 64 bit (
AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Python IDLEの設定

Python Shellの[Option/Configure IDLE]で環境設定することができる。

基本的には、Python IDLEはそのままで利用できるが、エディタとしてPythonスクリプトを書いて保存する場合の文字列の符号化をせってしておこう。

左図のように、Preference(設定)の一般タブ(general)で、デフォルト符号化をUFT-8としておこう。 UTF-8にしておくと、何かと都合がよい(Windows Python IDLEでは設定が有効にならないようだ (xx;))。


Python Shellでの入力

Python IDLEを起動すると、次のようにPython shellの状態であることを示すプロンプト >>> が現れた。

Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:40:30) [MSC v.1500 64 bit (
AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

プロンプト >>> につづいてPython文法に合致した文字列(スクリプト)を直接入力して、Enterキーを押してスクリプトを実行することができる。 スクリプトを1つずつ実行するためにまとまったスクリプトを動かすには適しておらず、いかにもまどろっこしい。 Pythonの動作を確かめることができるので、Python文法やその動作説明としてしばしば用いることがある。

ここで書くスクリプトはファイルに保存し、コマンドラインからそれらを一気に読み込んで実行することを原則とする

文字列を出力する

print を使って文字列を引用符 " または ' で挟んで出力する。 以下の使い方に注意しよう。

>>> print 'Hello, world'
Hello, world
>>> print "Hello, world"
Hello, world

Python2ではprintは print文であり、括弧 ( ) は必須ではなかった。 しかし、Python3では print は関数となって ( ) が必須である。 以降では(出来る限り) printでは ( ) を用いる。

print(関数 print)では、出力する文字列の末尾で自動的に改行される。

演習: Python shellにprintを使うスクリプトを入力して、文字列 I'm using Python を出力しなさい。

SyntaxError

Python文法から逸脱したスクリプトを実行すると構文エラーとなる。

>>> print("Are you OK?')
    
SyntaxError: EOL while scanning string literal
演習: 上の構文エラーを指摘しなさい。