LoginSignup
13

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-04-24

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がグローバル変数であることを宣言することにより,関数内でグローバル変数の書き換えができる.

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13