Help us understand the problem. What is going on with this article?

Python2で競技プログラミングする時に知っておきたいtips(その他の言語仕様編)

More than 1 year has passed since last update.

Python2で競技プログラミングする時に知っておきたいtipsの,その他の言語仕様についての部分を分割しました.

Pythonのバージョンは2.7.5(Python3では,入出力などの仕様が大きく異なるので,他の記事を参照することをおすすめします).

グローバル変数

Python bite: グローバル変数へのアクセス | Inside ASCADE

関数の中でグローバル変数に代入する

全探索を書く際などにグローバル変数を用いることがあるが,Pythonでは,関数内からグローバル変数にアクセスする際に注意する点がある.

# 関数内に変数の参照しかない場合
a = 'abc'

def function():
    print a

function() # 'abc'


# 関数内での変数への再代入を含む場合
a = 'abc'

def function():
    a = 'def'
    print a 

function() # def
print a # abc

上の例のように,関数内からグローバル変数を参照することはできるが,その関数内で同名のローカル変数に代入を行うと,その関数内ではローカルスコープとして扱われてしまう.
このため,そのままでは関数内でグローバル変数の値を変更することはできない.

a = 'abc'

def function():
    global a
    a = 'def'
    print a

function() # def
print a # def

global aによって,変数aがグローバル変数であることを宣言することにより,関数内でグローバル変数の書き換えができる.

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした