Python入門

ver.1

担当者

名古屋文理大学 情報メディア学科 小橋一秀

担当科目 データベース、ゲームプログラミング、メディアアートなど

1時間目

Pythonの開発環境 IDLE を起動します。
対話モードで以下のコードを入力またはコピペして実行しながら、変数、リスト、関数、forループについて学びます。


コード編集と実行のキーボード操作:

Ctrl + Z 操作の取り消し(アンドゥ)

Shift + ↑ ↓← → 選択範囲拡大

Ctrl + C 範囲コピー

Ctrl + V 貼り付け

Enter コード実行

Alt + P コード入力履歴検索(Alt + Nで逆方向検索)

Home End PgUp PgDn 入力位置を行の先頭、行末

Pythonのプログラムのエラーについて

SyntaxError 文法エラー
カッコの対応や単語の綴りや記号( : コロン、, カンマ、. ドット、' シングルクオートなど)の入力ミスを確認して直す

IndentationError インデントのエラー
インデントの高さを修正して直す

1-6行:加減算 + と - 、乗除算 * と / 記号。記号と数字の間に空白OK。式の前に空白、後ろに=でエラーになる。履歴を検索して修正して実行を試す(デバッグする)。

変数(メモリ) a b c d などに値や計算結果をセットするには=を使う。変数名は1文字でなくてもよい。自分の名前(ローマ字)の変数に年齢をセットする。6行は変数の値を+1増加させる例。

対話モードで a や kobashi などの変数名をタイプしてEnterでその値を確認する。

8-9行:複数の値を順に並べてリストという1塊のデータにする。

11-13行:関数名(データ) で値を処理できる。()の中を引数と呼ぶ。引数として変数や値や式を使う。sumは合計、lenはリストの要素数を求める関数。関数を式で使用できる。

15-18行:range関数で範囲を指定する。範囲からlist関数でリストを生成してsumで合計する。合計する範囲を増やしてもよい。

20-21行:リストの要素に変数名を記述。リストの要素に文字/文字列を記述する例。文字列はシングルクオート ' で囲む。

23行:import文でrandomパッケージからchoices関数を追加する。Pythonにはパッケージが大量にあり選択して使う。

25-26行:choicesのキーワード引数 k に10を設定してリストからランダムに10回抽選(抽選後復元)した結果のリストを求める。weightsでリストの各要素の重み(当たりやすさ)を指定できる。sorted関数でリストの並べ替え、countメソッド※で引数の'a'の出現回数を集計する。※メソッド: 特定のデータ用に用意された関数。ここでは ansリストのcountでansに含まれる'a'をカウントする。

32-33行:関数を作成する(関数定義)。関数名(引数)で関数を実行する際に引数に値をセットしておくことができる。

35-36行:100連ガチャにチャレンジして当たりの個数を集計

38行:変数rの値を書式文字列'{0}枚'の0の位置に埋め込んでprintで表示する

40-42行:for文でiを1から100まで増やしながら100人の100連ガチャの結果を表示する。for文で繰り返すコードはインデントを揃えてまとめる。

44-47行:if文の例。r > 0 は条件判定の式で r の値が 0より大きな場合に次のインデントされたブロックのコード(ここでは print関数)を実行する。

2時間目

Pythonの開発環境 IDLE を起動します。

IDLEのメニューから File → New File で、Pythonコードの編集ウィンドウを開きます。この時間では対話モードではコードは実行しません。


コード編集のキーボード操作:

Ctrl + A 全選択

Alt + 3 コメントアウト(##を行の頭につけてコードをコメントにすること)

Alt + 4 コメント解除

F5 コード実行

以下のコードを全選択して編集ウィンドウにコピペします。

コメントを解除してコードを実行して動作を確認する。確認が終わったコードのコメントを戻すかコードを削除する。

同様の作業を繰り返してコードを試して行く。

F5キーでコードを実行する際にファイルの保存が必要になります。ファイル名「turtle」で保存してください。2回目以降は上書き保存します。

1行: パッケージturtle の関数を利用可能にする。タートルグラフィックス(CG)を描きます。

3-6行:forwadでタートル(画面上に矢印で表示)を指定した距離前進させる。前進の軌跡が線で描画される。leftで指定した角度回転する。

8-10行:前進&向きの変更 をforで繰り返す。5角形を描く

12-15行:五芒星(☆)を描く。5角形の倍の角度回転する(2周することになる)。

17-20行:八芒星を描く

正多角形の辺を伸ばして作成できる星型図形のうち複数の多角形に分解できないものを星型正多角形という。六芒星は星型多角形であるが星型正多角形ではない。ここのコードは星型正多角形を描くので六芒星は描けない。

22-28行:2重ループの例。外側のfor文で反時計回りに回転させながら、内側のfor文で☆を3回描く。

30-37行:pencolorで線の色、fillcolorで塗りの色を指定する。色はRGB(赤緑青)の順に0.0-1.0の値で指定する。

39-58行:turn関数とhanabi関数を定義する。

turn関数は引数nで指定した星型正多角形を描くように回転する角度を調整する。n % 2 == 0の条件式は nが偶数であることを判定している(nを2で割った余りが0)。

hanabi関数は変数 outerとinnerの値で外側の図形と内側の図形の線の数を指定している。

定義した関数を56-58行で実行する。

60-93行:hanabi関数で描く図形を 5x5のタイル状に敷き詰める。タイル状に配置するためにsetposでタートルを指定した座標に移動させる。配置は2重ループを利用する。
77-78行のtracerとhideturtleでタートルのアニメーション表示をOFFにする。描画時間を短縮できる。

発展1

Pythonの変数やfor文の動作確認用コードです。実行結果とコードを見比べてください。

発展2

IDLEに付属するサンプルコードを実行してみましょう。コードを読んで分からないところを調べて動作を理解しましょう。

メニュー Help → Turtle Demo
Examples からデモを選択 → Startボタン で実行

bytedesign