質問: 60) # ウィンドウを表示する root.mainloop() ```
回答: ``` def ButtonClick(): ... ``` のブロックは関数の定義なので処理そのものではありません。このスクリプトの処理上は `a` の値の定義が最初に来ています。 ところでこのスクリプトはtkinterというGUIライブラリを使っているようですが、こういった場合 1-4 のような順序でスクリプト上に処理が記述されるかというと、そんな事はありません。 それは「ボタンを操作したら何をするか」という処理( `ButtonClick` )を先に書いてあらかじめボタンに登録( `tk.Button` )しておいてからユーザーの入力を待つ( `root.mainloop()` )という流れになるからです。 特にボタンが複数ある場合を想像してもらえればわかりやすいと思います。 今回の場合、 `a` の値はボタンを押されたタイミングでしか参照されないので `root.mainloop()` の直前に `a` を定義しても動作すると思います。