スクリプト言語を素人が習得に挑戦!

スクリプト言語に全くのIT素人がチャレンジした記録をお伝えします。

Pythonの関数の変数は関数内部のものだけを使用しましょう。

Pythonの関数でやってはならない事は
関数外部変数を関数内部で使うことです。
一体何故でしょうか?

f:id:script2:20210227155241j:plain

f:id:script2:20210227155245j:plain

亀が円を描くコードです。

import turtle
kame = turtle.Turtle()
kame .shape('turtle')
kame.shapesize(2,2,3)
def center_circle():
 kame.penup()
 kame.forward(200)
 kame.left(90)
 kame.pendown()
 kame.circle(200)
 kame.penup()
 kame.home()
 kame.pendown()
center_circle()

f:id:script2:20210227155249j:plain

こうやって円を描きます。
ただこれは間違いです。

kame = turtle.Turtle()の関数外部のkameって変数を

def center_circle():の関数内部で使うのはやってはいけないのです。
何故ならkameの変数がkame2になったら関数内部のkame.penup()はエラーになってしまいます。
 

f:id:script2:20210227171326j:plain

f:id:script2:20210227171331j:plain

では、正しく書いてみましょう。

import turtle
kame = turtle.Turtle()
kame .shape('turtle')
kame.shapesize(2,2,3)
def center_circle(target):
 target.penup()
 target.forward(200)
 target.left(90)
 target.pendown()
 target.circle(200)
 target.penup()
kame.home()
kame.pendown()
center_circle(kame)

def center_circle(target):にtargetって変数を新たに作ります。
実際に動くのはkameなので
center_circle(kame)はkameって引数にします。
これで亀が円を描きます。

つまり、関数の内部で使える変数は関数内部で決めたのか、引数で引き受けたものだけなんです。






14日間無料体験あり!【テックパートナーズカレッジ】



本気のプログラミングスクール【ウェブカツ】




【アイデミー】AIを学んで一発逆転のキャリアチェンジ!



~約20,000名の受講生と300社以上の導入実績~

現役エンジニアのオンライン家庭教師CodeCamp









ブログ運営者への連絡先です。

yuuj089@gmail.com