pf-9. 関数呼び出し
(Python 入門)
URL: https://www.kkaneko.jp/pro/pf/index.html
1
金子邦彦
関数の中の式の評価のタイミング
2
foo(100) の値は 40000
a 100 x 400
foo(100) の値は 300000
a 100 x 3000
関数の中の式「a * x」の評価では,
最新の a の値,最新の x の値が用いられる
trinket
• Trinket はオンラインの Python、HTML 等の学習サイト
• 有料の機能と無料の機能がある
• 自分が作成した Python プログラムを公開し、他の人に実
行してもらうことが可能(そのとき、書き替えて実行も可
能)
• Python の標準機能を登載、その他、次のモジュールや
パッケージがインストール済み
math, matplotlib.pyplot, numpy, operator, processing, pygal,
random, re, string, time, turtle, urllib.request
3
• trinket は Python, HTML などのプログラムを書き実行できる
サイト
• https://trinket.strivemath.org/python/0fd59392c8
のように、違うプログラムには違う URL が割り当てられる
• 実行が開始しないときは、「実行ボタン」で実行
• ソースコードを書き替えて再度実行することも可能
trinket でのプログラム実行
4
ソースコードの
メイン画面
実行結果
実行、STOP ボタン
演習
資料:6
【トピックス】
• 関数呼び出し
5
① trinket の次のページを開く
https://trinket.strivemath.org/python/d60de93fb8
② 実行結果が,次のように表示されることを確認
6
ステップ実行
ステップ実行により、プログラム
実行の流れをビジュアルに観察
7
8
• Python Tutor というウェブサ
イトを利用しよう
http://www.pythontutor.com/
• Web ブラウザを使ってアクセ
スできる
• PythonTutor では,Pythonだ
けでなく,Java,C,,C++,
JavaScript,Ruby など,多く
のプログラミング言語を学ぶ
ことができる.
Python Tutor
Python Tutor の使用方法
① まず,ウェブブラウザを開く
② Python Tutor を利用するために,以下の URL に
アクセス
http://www.pythontutor.com/
③ 「Python」をクリック ⇒ 編集画面が開く
9
Python Tutor の編集画面
10
「Python 3.6」になっている
実行のためのボタン
エディタ
(プログラムを書き換えることができる)
• Python Tutor は Python などのプログラムを書き実行できる
サイト.ステップ実行、変数の値表示などの機能がある。
• Python Tutorのウェブサイトにアクセス.「Python」を選択
https://www.pythontutor.com/
Python Tutor でのプログラム実行
11
Visualize Execution ボタン
メイン画面で、プログラムを書く
通常実行: Last
ステップ実行: 他のボタン
変数の値を
視覚的に
確認できる
メイン画面に
戻るには
Edit this code
Python Tutor でのプログラム実行手順
12
(1)「Visualize Execution」をク
リックして実行画面に切り替える
(2)「Last」をクリック.
(3) 実行結果を確認する.
(4)「Edit this code」をク
リックして編集画面に戻る
Python Tutor 使用上の注意点①
実行画面で,赤いエラーメッセージが出ることがある
過去の文法ミスに関する確認表示.
基本的には, 無視して問題ない
邪魔なときは「Close」
13
Python Tutor 使用上の注意点②
「please wait ... executing」のとき,10秒ほど待つ.
• Python Tutor が混雑しているとき, 「Server
Busy・・・」 と表示される場合がある.
• このメッセージは,サーバが混雑していることを示す.
• 数秒から数十秒待つと自動で処理が始まるはずです(し
かし,表示が変わらないときは,操作をもう一度試して
ください)
14
演習
資料:16 ~ 24
【トピックス】
• Python Tutor
• ステップ実行
• 関数呼び出しにおけるジャンプ
• 関数内で使用される変数が消え
るタイミング
15
ステップ実行により確認できること
16
ステップ実行により,ジャンプの様子を観察
ジャンプの
様子を示す
矢印
ステップ実行は、
ボタンやスライダーでコントロール
変数の値の
確認もできる
Python Tutor の起動
① ウェブブラウザを起動する
② Python Tutor を使いたいので,次の URL を開く
https://www.pythontutor.com/
③ 「Python」をクリック ⇒ メイン画面が開く
17
④ Python Tutor のエディタで次のプログラムを入
れ,実行し,結果を確認する(あとで使うので消
さないこと)
18
「Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
「Edit this code」をクリックすると,エディタの画面に戻る
結果を確認
def foo(a):
return a * 1.1
print(foo(100))
print(foo(150))
print(foo(400))
(計算誤差がある.
動作は正常)
「return a * 1.1」の行は字下げが必要
⑤「First」をクリックして,最初に戻る
19
⑥ 「Step 1 of 13」と表示されているので,
全部で,ステップ数は 13 あることが分かる
(ステップ数と,プログラムの行数は違うもの)
20
⑦ 最初に戻したので
・すべてのオブジェクトは消えている
・赤い矢印は先頭のところに戻っている
21
⑧ ステップ実行したいので,「Next」をクリック
しながら,矢印の動きを確認.
※「Next」ボタンを何度か押し,それ以上進めなく
なったら終了
22
見どころ
foo との間で
ジャンプするところ
⑨ 終わったら,もう一度,「First」をクリックし
て,最初に戻る
23
⑩ もう一度,ステップ実行.
今度は、緑の矢印を見ながら、変数 a が生成、消
去されるタイミングを確認
緑の矢印:いま実行が終わった行
24
関数 foo の実行中は,
変数 a が現れる