- 2018-8-23
- pythonプログラミング, 変数
- python, スコープ, 変数
- 【Python入門】変数のスコープとは?例題を用いてわかりやすく解説 はコメントを受け付けていません
ここまでの記事でPythonにおける変数について
いろいろと解説してきました。
詳しくはこちらをご覧ください。
⇒【Python入門】変数の型についてわかりやすく解説
⇒【Python入門】変数の代入についてわかりやすく解説
⇒Pythonの変数宣言で注意すべきこと
今回の記事では変数のスコープとはどういうものなのか
例題を一緒に解いていきながら解説していきたいと思います。
目次
【Python入門】変数のスコープとは?
スコープとは変数の有効範囲のことです。
「有効範囲?」と疑問に感じるかもしれませんね。
たとえば関数の中だけという範囲でしか活用できないのか
それともどこでも活用できるのか、といった範囲です。
で、大きくみると変数のスコープには
・ローカル変数
・グローバル変数
の2つにわかれます。
書籍によっては4つに分けているものもあります。
が、ここではPython入門編ということで
混乱しないために、変数のスコープは2つに分かれると理解しておいてください。
【Python入門】ローカル変数・グローバル変数とは?
ローカル変数とは関数の中で定義された変数のことをいいます。
同じ関数の中からでしか参照することができません。
これに対してグローバル変数とは関数の外で定義された変数のことをいいます。
グローバル変数ならどこからでも参照することが可能です。
まずそもそも変数とは簡単に言うと、
文字列とか数字といった値を入れておく箱のことです。
たとえばxとかyも変数になれます。
それでは例題をみてみましょう。
#例題1 #以下はグローバル変数 x = 'チワワ' #以下のyはローカル変数 def tiwawa(): y = '大好き' print(x,y) tiwawa()
例題1ですが、変数xには『チワワ』という
文字列が入っています。
x = 'チワワ'
この変数xですが、その下にある
def tiwawa():
という関数の外部にあります。
なので、変数xはグローバル変数に該当します。
次に
def tiwawa(): y = '大好き' print(x,y)
のdef tiwawa():
ですが、こんな感じでtiwawaという関数が定義されていますね。
関数の定義についてはこちらの記事をご覧ください。
⇒【Python】関数を定義する方法・呼び出しや引数についても解説
で、tiwawaという関数の範囲内に
変数yがあります。
変数yには『大好き』という文字列が代入されています。
で、変数yはtiwawaという関数の範囲内にあるので
ローカル変数に該当します。
次に
print(x,y)
ということで、変数xと変数yを表示します。
それから
tiwawa()
ということで、tiwawaという関数を呼び出します。
実行すると
『チワワ 大好き』
と表示されます。
こんな感じでグローバル変数の中身『チワワ』と
ローカル変数の中身『大好き』が一緒に表示されましたね。
【Python入門】変数のスコープで間違いやすい例
まず例題2をご覧ください。
#例題2(関数の外でローカル変数は参照できない) #以下はグローバル変数 a = 'アナゴ' #以下のyはローカル変数 def anago(): b = '食べたい' anago() print(a,b)
例題2では『食べたい』というローカル変数を
関数の外で参照しようとしています。
以下のような感じです。
anago() print(a,b)
そのためエラーが出てしまうんです。
ローカル変数は関数の中でしか
参照できないんでしたね。
こんな感じでローカル変数は関数の外で使うことができません。
覚えておいてくださいね。
【Python入門】変数のスコープまとめ
変数のスコープについて解説してきました。
今あなたが記述している変数が
ローカル変数なのか、グローバル変数なのかについての認識を
間違えるとエラーの原因になってしまいます。
ですから関数を書く時には
ローカル変数なのか
グローバル変数なのか意識するようにしましょう。
スコープの認識を間違うと、意図しない不具合につながります
関数を記述する際に、変数のスコープを意識することはとても大事です
pythonを学ぶならこちらの動画講座がおすすめです
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
かなり長い講座名ですね。
わかりにくそうな感じがします。ですが、pythonの基礎からしっかりとわかりやすく教えてくれます。
また、きれいなコードを書くための方法についても
教えてくれるので、周りが「どうやってそんなコードを書いてるの?」
とびっくりされるようになるかもしれません。それからWebアプリケーション開発の基本的なテクニックについても
教えてくれます。なので、pythonを使ってwebアプリケーションを作ってみようと
思っている方にもおすすめです。値段は時期によって違います。
詳しくはこちらをご覧ください。
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
この講座ではまずpythonの基礎を学びます。
次に人工知能について学んでいきます。そして最終的にはpythonを使って文字認識や株価分析ができるような技術力が身につくようになっています。
単純に教科書的なpythonを学ぶのではなく
仕事でも使えるスキルを身につけたい方におすすめの講座です。なのに値段は恐ろしいほど安いです。
時期によって値段は変動するので
詳しくはこちらをご覧ください。
Pythonで機械学習:scikit-learnで学ぶ識別入門
この動画講座は広島大学准教授の先生が担当しています。
機械学習が専門の先生です。すごく深い知識が身につきます。
大学の先生の講義って難しそうってイメージがあるかもしれません。でもそんなことはありません。
すごくわかりやすいです。pythonで機械学習のスキルを身につけたい方におすすめです。
値段は時期によって違いますが、かなり、良心的な価格になっています。詳しくはこちらをご覧ください。