Python問題集を解いてみよう!!

Pythonクイズ No.1

PythonクイズNo.1
目次

問題

次のコードを実行した時の出力として正しいのは A 〜 D のどれでしょうか?

解答

正解は。。。

正解は D の

[1]
[1, 1]

です。

解説

このコードのキーポイントは、関数foo()のデフォルト引数の扱いです。

デフォルト引数は関数実行時に引数が指定されなかった場合に使われるデフォルトの値を設定できる機能です。

Python において、デフォルト引数は関数が定義されたときに一度だけ評価されます。

この問題の場合、

  1. 最初のfoo()の実行では、xはデフォルトの空リストになっています。その後、x.append(1)x[1]になり、[1]が出力されます。
  2. 次のfoo()の実行では、xは最初のfoo()の実行後の[1]になっています。そのため、x.append(1)x[1, 1]になり[1, 1]が出力されます。

したがって、全体としての出力は、

[1]
[1, 1]

となります。

Python におけるデフォルト引数のような機能は他のプログラミング言語にもありますが、プログラミング言語によっては実行時にも評価されるものもあるため、プログラミング言語ごとにその仕様を確認する必要があります。

Google Colaboratory

下記リンクからアクセスして、Google Colaboratory 上で実際にコードを実行して、結果を確認していただけます。

おわりに

X の Taklog アカウントで Python クイズを配信しています。

よかったらフォローしてください!

以上です。

スポンサーリンク

PythonクイズNo.1

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次