Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
13
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

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

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
13
Help us understand the problem. What are the problem?