Python 模擬試験

Python基礎 模擬試験 第5回 問13・4章 制御構造ツール(関数の定義)

関数内の代入と変数のスコープ

次のコードを実行したときの出力として、正しいものを1つ選べ。

x = 1
def f():
    x = 2
f()
print(x)
  1. A

    2

  2. B

    1

  3. C

    None

  4. D

    NameError が発生する。

正解と解説を見る

正解:B

関数内で代入すると、ローカル変数ができる。グローバルを書き換えるには global 宣言が必要。

順実行する行実行後の変数
1`x = 1`x = 1
2`def f():`—
3`f()`—
4└ `x = 2`x = 2
5`print(x)`x = 1
結果実際の出力1

学習のポイント:参照だけの場合は、グローバルの値が読める。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。