基礎試験は、オフィシャル教材『Pythonチュートリアル』から網羅的に出題されます。
コマンドライン引数(sys.argv)と対話型モード
Python
import sys
# コマンドラインから python script.py arg1 arg2 と実行した場合
# sys.argv[0] はスクリプト名 ('script.py')
# sys.argv[1] は第1引数 ('arg1')
対話型モード(REPL)では、直前に評価された結果が特殊変数 _(アンダースコア)に自動代入される点も頻出です。
引っかけ問題対策(出題率高)
1. ミュータブルオブジェクトのデフォルト引数
関数の定義時にデフォルト引数として空リスト [] を指定すると、関数呼び出し間でデータが保持されてしまう仕様を突いた問題が多発します。
Python
def append_to(element, target=[]):
target.append(element)
return target
print(append_to(1)) # [1]
print(append_to(2)) # [1, 2] (空リストに戻らない!)
2. 浅いコピー(copy)と深いコピー(deepcopy)
ネストされたリストの参照の扱いが出題されます。
Python
import copy
a = [[1, 2], [3, 4]]
b = copy.copy(a) # 浅いコピー: 内部リストの参照は共通
c = copy.deepcopy(a) # 深いコピー: 内部オブジェクトまで完全複製
a[0][0] = 99
print(b[0][0]) # 99 (影響を受ける)
print(c[0][0]) # 1 (影響を受けない)

コメント