問題

Pythonの関数について、次の記述のうち最も正しいものはどれか。

選択肢

(a) 関数はreturn文を使わずに値を返すことができる。

(b) 関数内で定義された変数は、関数の外からでもアクセスすることができる。

(c) 関数はデフォルトで値が設定された引数を持つことができる。

(d) Pythonにおいて、関数は引数を一切受け付けない。

  • a
  • b
  • c
  • d

Python3 関数の基礎知識

答え

(c)

解説

Python3では関数はデフォルト値をあらかじめ設定した引数を持つことができます。デフォルト引数を使うことで、関数呼び出し時に引数が指定されていない場合に、関数内ではデフォルトで指定した値を引数として使います。

デフォルト引数は関数を定義するときに、引数名の後に等号(=)とデフォルト値を指定することで設定できます。以下がサンプルコードです。

# この関数はnameという引数を持ち、デフォルト値として"World"が指定されています。
def greet(name="World"):
    print(f"Hello, {name}!")

# 引数が指定されなかった場合
greet()  # 出力: Hello, World!

# 引数が指定された場合
greet("Alice")  # 出力: Hello, Alice!

出力:

Hello, World!
Hello, Alice!

【その他の選択肢】

選択肢a
→ 関数は値を返すためにreturn文を使う必要があるので、return文を使わずに値を返すことはできません。

選択肢b
→ 関数内で定義された変数は関数の外からアクセスできません。これをローカル変数と言います。例えば次のようなコードを実行すると、エラーが発生します。

def my_func():
    i = 100
    print('i in func: ', i)
    return

print('i outside func: ', i)

出力:

Traceback (most recent call last):
  File "Main.py", line 9, in <module>
    print('i outside func: ', i)
NameError: name 'i' is not defined

選択肢d
→ 明らかに間違いです。

 

テスト一覧

スキルテストが提供しているテストの一覧です。ぜひ学習や実力チェックに役立ててください。