Pythonプログラミング(ステップ1・準備)

このステップの目標

0. このウェブ教材について

ご覧いただき有難うございます。 このページを訪れた方は、何らかの理由で、Pythonプログラミングのスキルを身に着けたいと考え、あれこれ検索するうちに、偶然、ここにたどり着いたのだろうと想像します。 Pythonの入門が目的の方にとっては、このウェブ教材の内容は、必ずしも期待に沿うものではないかもしれません。 といいますのは、この教材を作成する狙いは、「計算機科学的な発想で問題解決する際に基本となる考え方」に触れてもらう点にあって、 Pythonの文法やコーディング技術等についての説明は最低限に留めるようにしてあるからです。

けれども、本格的なプログラミングを目指している方にとっての、入門時の副教材にはなり得るかもしれません。 それぞれの目標に応じて、ご活用いただけたら幸いです。

1. ソフトウェアの準備

自宅からオンライン授業を受講する場合は、この「ソフトウェアの準備」の内容はスキップして構わない。 代わりにGoogle Colabの利用法を確認すること。

Pythonのコードを書いて、それを実行する方法は、使用しているソフトウェアごとに異なりますから、基本的に、ネットの情報などを手がかりに自分の環境に合ったやりかたを探すことになります。 以下では、このサイトのオーナーの自作ソフト(TurtleEdit)を使うことを想定して説明してある箇所がありますが、自力で設定できるくらいのスキルをお持ちの方は、好みの環境を整えることで全く構いません。

自分のパソコンにあれこれソフトをインストールするのが難しい場合は、ウェブブラウザから利用できるGoogle Colaboratoryをお勧めします。 具体的な使用方法は、こちらのページに説明してあります。

Python 3 のインストール

このページは、パソコンを所有している方を想定しています。 使用しているOS(オペレーティング・システム)は、ほとんどの場合は Windows と macOS、そして、その方面にかなり詳しい一部の方が Linux、といったところでしょうか。ともあれ、ご自分のパソコンとそのOSの使い方については、よくご存知であることが前提となります。

次に、ウェブサイトの情報を手がかりに、Pythonをインストールしてください。 Pythonのバージョンは、2系と3系が併存していますが、その仕様は微妙に異なります。 このサイトでは、バージョン3系の使用を想定しています。 macOSやLinuxでは標準でPythonがインストールされていますが、それらはバージョン2系のものもあります。 その場合は、各種の情報を手がかりに、バージョン3系を新たにインストールする必要があります。

Python 3をインストールしたら、pythonコマンドへのパス(path)を確認しておきます。 コマンドのパスは、インストール方法によって異なります。

p-1-turtleedit-icon
TurtleEditのアイコン

TurtleEditのインストール

TurtleEditはコーディングと実行を行うための環境を提供します。

インストールしてソフトを起動し、実行メニューの中から設定を選択します。続いて、以下の設定を行っておきます:

  1. インタプリタにチェックを入れます。
  2. 実行コマンドの欄に、Pythonを起動するためのコマンドを記述します。
    Python 3のコマンド名がpython3で、適切にPATHが設定されている場合
    python3 -u %f
    と記述します。"-u"の前後には半角スペースを入れてください。
  3. 亀場のパス亀場を自動起動については、亀場でプログラミングを利用する際に必要な設定ですが、はじめは、設定を変えずにそのままにしておきます。
  4. 文字コードは必ずUTF-8を選択、フォントは好きなものに変更しても構いません。
  5. 最後にOKボタンを押して設定完了です。
p-1-intro-tedit-settings

TurtleField(亀場)のインストール

このサイトでは、学習教材として 亀場でプログラミング を使います。 「亀場(TurtleField)」とは、Pythonプログラムを使ってコンピューター・グラフィックスや、シミュレーションを行うためのソフトウェアです。 使っているシステム用の「亀場サーバー」を選んで、インストールしておいてください。

亀場サーバーをインストールしたら、TurtleEditの実行メニューの設定で、 亀場のパスを設定しておきます。 ... ボタンを押して、亀場サーバーの実行ファイルを選択すると、亀場のパスが設定できます。

亀場を使う場合は、亀場を自動起動にチェックを入れておくことで、Pythonコードの実行と同時に、亀場サーバーが自動的に起動されます。 亀場が必要無い場合は、チェックを外しておきます。

2. 動作確認:プログラム作成から実行までの流れ

では、これまでの設定がうまくいっているかどうか、確認してみましょう。

ステップ1:ソースプログラムの作成

TurtleEditのウィンドウは上下の2つの区画に分かれています。その上側が、プログラムを記述するための区画で、 ワープロのようにPythonのプログラムをその中に記述します。

TurtleEditのウィンドウの様子。上側の区画で編集作業を行う。 下側の区画はプログラムの実行結果の表示等に使われる。

p-1-intro-tedit

Pythonのプログラムの記述法などはこれから勉強するとして、ここでは、TurtleEditの画面(上側の区画)に 以下のコードをコピー&ペーストしてみましょう:

曜日の計算するPythonプログラム(dow.py)

なぜこれで曜日を計算することができるのかについては、別のページで改めて考えます。

dows = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]

year = int( input("Year ?: ") )
month = int ( input("Month ?: ") )
day = int( input("Day ?: ") )

if month==1 or month==2:
    year2 = year -1
    month2 = month + 12
else:
    year2 = year
    month2 = month

dayofweek = (year2 + year2//4 - year2//100 + year2//400 + (13*month2+8)//5 + day) % 7 

print("{0}/{1}/{2} is {3}.".format(year,month,day,dows[dayofweek]))
Python 2版
dows = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]

year = int( input("Year ?: ") )
month = int ( input("Month ?: ") )
day = int( input("Day ?: ") )

if month==1 or month==2:
    year2 = year -1
    month2 = month + 12
else:
    year2 = year
    month2 = month

dayofweek = (year2 + year2//4 - year2//100 + year2//400 + (13*month2+8)//5 + day) % 7 

print "{0}/{1}/{2} is {3}.".format(year,month,day,dows[dayofweek])

プログラムを記述(コピー&ペースト)したら、必ずその内容をファイルに保存しておく。 「ファイル」メニューの中の「保存」を選んで、自分の決めたディレクトリ(フォルダ)内にファイルを保存します。 その際、 ファイル名の拡張子は必ず .py にします (拡張子pyはそれがPythonのソースプログラムであることを表す)。 ここで、ファイル名はdow.pyとしておきましょう。

ステップ2:実行

実行ボタンを押した際の具体的な動作は、TurtleEditの「実行」メニューの中の「設定」を選んだ際に表示される「実行コマンド」の欄に設定されています。 「設定」のウィンドウで、インタプリタにチェックが入っていることも確認してください。

保存したソースプログラムを実行するには、TurtleEditのウィンドウ内の実行ボタンを押してください。

もし、ソースプログラムに何かの不具合(エラー)が見つかると、TurtleEditの下側の区画にエラーメッセージが表示されるので、行番号を手がかりに、エラー箇所を見つけ、修正します。

もしも予期せぬ動作をした場合は中断ボタンを押せば、プログラムを強制終了することができる。

プログラムが正常に動作を始めると、西暦年、月、そして日をキーボードから入力するように求めてきます。 TurtleEditの下側の区画をマウスでクリックし、赤い四角いカーソルが出ている状態で、キーボードからそれぞれの項目を入力しEnterを押すと、 最後に、その日の曜日が出力されるはずです。 例えば、あなたの誕生日は何曜日だったでしょうか?

ファイルを保存した状態で、作業ディレクトリ確認ボタンを押すと、ソースプログラムの保存先の ディレクトリ名と、その中のファイルの一覧が表示されます。 現在作業中のファイル名(この場合はdow.pyは赤字で表示されます。 ファイルをどこに保存したかわからなくなったら、このボタンを押して確認するようにしましょう。

ステップ3:「亀場」の動作確認

亀場を使うには、Pythonコードと同じフォルダー内に turtle3.pyをダウンロードして保存しておく必要があります (Python 2の場合は turtle.pyを使用)。

turtle3.py をダウンロードしたら、TurtleEditを開いて、以下のコードをコピー&ペーストします。 保存先は、ダウンロードした turtle3.py と同じ場所にします。

koch.py

Python 2の場合は、1行目の "from turtle3 import Turtle" を "from turtle import Turtle" と書き換えること。

from turtle3 import Turtle

def koch(ttl, x, n):
	if n>=5:
		if x == 'A':
			ttl.fd(2)
		elif x == 'L':
			ttl.lt(60)
		elif x == 'R':
			ttl.rt(120)
	else:
		if x =='A':
			koch(ttl,'A',n+1)
			koch(ttl,'L',n+1)
			koch(ttl,'A',n+1)
			koch(ttl,'R',n+1)
			koch(ttl,'A',n+1)
			koch(ttl,'L',n+1)
			koch(ttl,'A',n+1)
		elif x == 'L':
			koch(ttl,'L',n+1)
		elif x == 'R':
			koch(ttl,'R',n+1)

ttl = Turtle("localhost")
ttl.clr()
ttl.rst()
ttl.bk(250)
ttl.lw(2)
ttl.pd()
koch(ttl,'A',0)
ttl.pu()

亀場を使うコードを実行する場合は、TurtleEditの実行メニューの設定で、亀場のパスを正しく設定し、かつ、 亀場を自動起動にチェックを入れておきます。

実行ボタンを押すと、亀が、次のような図形を描き始めるはずです。 描画がうまくいかないときは、Pythonコード、turtle3.pyの保存先、TurtleEditの設定を確認してください。

亀場が起動されていないと

cannot connect to localhost
seems like turtle field is not ready...

というメッセージが表示されます。TurtleEditの設定を確認してください。

koch.pyの実行結果(亀場の様子)

p-1-intro-koch