質問内容
子どもにプログラミングを教えており、題材としてPythonを利用しています。
現在スコープの説明をどうするかで悩んでおり、自分自身の理解の不足にも恥じ入るばかりです。
例えば、以下のようなプログラムがあった場合、
・なぜ「global targetWord」と書かなければいけないのか
・そもそもスコープとは何なのか
こどもにも納得がいく説明の仕方はないでしょうか?
大人だと「そうしないとエラーになってしまうのでそう書いてくださいね」で終わるので苦労はないのですが、、、
以上お知恵拝借、よろしくお願いいたします。
該当のソースコード
Python
1#しりとりプログラム 2import tkinter as tk 3import time 4 5window=tk.Tk() 6 7 8lab=tk.Label(text="最初の文字は「しりとり」",fg="black") 9lab.pack() 10 11tex=tk.Text(width=15,height=1) 12tex.pack() 13 14 15targetWord="しりとり" 16 17def bAction(): 18 19 sLast=targetWord[-1] 20 21 textInput=tex.get('1.0','end-1c') 22 23 #入力したことばの最初の文字を取る 24 sFirst=textInput[0] 25 26 #今の文字を取り出す 関数の外の変数にため、globalを使う **ここをどう説明しよう?** 27 global targetWord 28 29 if(sFirst==sLast): 30 targetWord=textInput 31 lab.configure(text=targetWord) 32 33 else: 34 #間違えをしたら2秒だけ表示を変える 35 lab.configure(text="文字が違うよ!") 36 window.update() 37 time.sleep(2) 38 lab.configure(text=targetWord) 39 window.update() 40 41button=tk.Button(text="押す",command=bAction) 42button.pack() 43 44
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/19 06:37
2018/04/19 06:42
2018/04/19 07:13 編集
2018/04/19 07:20