pythonのローカル変数の受け取り方について質問があります。
以下のプログラムでは12と18の公約数[1,2,3,6]を出力させるつもりで書きました(回りくどいことをしていますが、ご了承を)
一番下の関数kyoutu()を経てからprint(koyaku_2)を実行させても、ローカル変数koyaku_2を取得してくれず、リストは空のままです。
関数kyoutu()内でprint(koyaku_2)を実行させたら[1,2,3,6]が出力されます。
pythonのことあまり分かっておらず変な発言をしているかと思いますが、どなたか原因を教えていただけませんか。
python3.6
1a = 12 2b = 18 3koyaku_a = [] 4koyaku_b = [] 5 6def koyaku(a,b): 7 for i in range(b+1): 8 if i == 0: 9 pass 10 else: 11 if a % i == 0: 12 koyaku_a.append(i) 13 for i in range(a+1): 14 if i == 0: 15 pass 16 else: 17 if b % i == 0: 18 koyaku_b.append(i) 19 return koyaku_a 20 return koyaku_b 21 22koyaku(a,b) 23 24###aとbの公約数[1,2,3,6]を出力させたい 25def kyoutu(koyaku_a,koyaku_b): 26 koyaku_2 = [x for x in koyaku_a if x in koyaku_b] 27 return koyaku_2 28 29### printしても空のままになる、ローカル変数を取得してくれない 30kyoutu(koyaku_a,koyaku_b) 31print(koyaku_2) 32
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/17 09:57