Python3エンジニア認定基礎試験 用語集
Python 3エンジニア認定基礎試験の用語は、似た働きのメソッドや文法要素を取り違えると失点します。定義を読む前に、動作が異なる組み合わせを確認しておきます。
他の資格の用語集も見る先に確認
混同しやすい用語
切り捨て除算(//) / 除算(/)
// 演算子による除算は、商の小数部分を切り捨てます。両辺が整数なら結果も整数になります。
/ 演算子は、割り切れる場合でも常に浮動小数点数を返します。
見分け方: 演算子が // か / かで、返る値の型と切り捨ての有無が変わります。
list.extend() / list.append()
extend() は、渡した反復可能オブジェクトの要素を1つずつ取り出してリストの末尾に足すメソッドです。
append() は、渡した値そのものを1個の要素としてリストの末尾に足すメソッドです。
見分け方: 複数の要素を展開して足すか、渡した値を1個の要素として足すかを見ます。
ループのelse節 / break文
for文・while文のelse節は、breakを実行せずにループが終了したときに実行されます。
break・return・例外で途中終了した場合、else節は実行されません。
見分け方: ループが最後まで回りきったか、途中で抜けたかを先に確認します。
よくある質問
3件QPython3エンジニア認定基礎試験用語集は何語収録されていますか?
A
現在39語を9分野に分けて収録しています。
Q用語集はどう使うのが効果的ですか?
A
気になる用語をクリックすると、定義や関連する分野の解説ページへ移動できます。演習中に迷った用語をその場で確認する使い方もできます。
Q用語の定義はどこを根拠に作成していますか?
A
各資格の公式シラバス・公式試験要項の範囲内で作成しています。
分野から用語を探す9分野
この分野を問題で確かめる
用語を読んだあと、同じ分野の問題で理解を確認できます。分野を選ぶとその分野の問題だけが出ます。
文法の用語をまとめて確かめられる書籍(Amazon)
用語の意味を調べたあとに、文法を最初から一通り確かめたいときのチュートリアルの日本語版です。購入前に版と試験範囲への対応を確認してください。
PR
- ループのelse節
- for 文や while 文に付けられる節。break を実行せずにループが終了したときに実行される。break・return・例外で途中終了した場合は実行されない。探したが見つからなかった場合の処理を置く書き方に使われる。
- デフォルトの引数値
- 関数の引数にあらかじめ与えておく値。関数を定義した時点で一度だけ評価されるため、リストや辞書のような可変オブジェクトを指定すると呼び出し間で状態が残る。
- match文
- 1つの式の値を、続く1つ以上の case ブロックのパターンと比較する文。C・Java・JavaScript の switch 文に表面的に似ている。最初にマッチしたパターンだけが実行され、どの case にもマッチしなければどの分岐も実行されない。case _ の _ はワイルドカードで、マッチに失敗しない。case 401 | 403 | 404: のように | で複数のリテラルを1つのパターンにまとめられる。
- キーワード引数
- 引数を名前を付けて渡す形。関数定義に / も * もなければ、引数は位置またはキーワードのどちらでも渡せる。位置専用の引数はキーワードで渡せず、渡すと TypeError になる。
- キーワード専用引数
- キーワード引数でしか渡せない引数。引数リストの最初のキーワード専用引数の直前に * を置いて示す。def kwd_only_arg(*, arg) に kwd_only_arg(3) と位置引数で渡すと TypeError になり、kwd_only_arg(arg=3) なら 3 を返す。*args の後ろにある引数もキーワード専用になる。
- range()
- 数列を作る組み込み関数。range(10) は 0 から 9 までの 10 個の値を生成し、指定した終端値は含まれない。増加量(ステップ)は負でもよく、list(range(0, 10, 3)) は [0, 3, 6, 9] になる。返すオブジェクトはリストのように振る舞うが本当はリストではなく、実際にリストを作らないのでスペースの節約になる。
- PEP 8
- ほとんどのプロジェクトが守っている Python のスタイルガイド。読みやすく目に優しいコーディングスタイルを推奨する。公式チュートリアルは、インデントに空白4つを使いタブは使わないこと、行が79文字を越えないよう折り返すこと、関数やクラスの区切りに空行を使うこと、docstring を使うことなどを要点に挙げている。
- pass文
- 何もしない文。文を書くことが構文上要求されているが、プログラム上何の動作もする必要がないときに使う。class MyEmptyClass: pass のように最小のクラスを作る書き方や、新しいコードを書いているときの関数や条件文の仮置きの本体として使われる。仮置きには省略記号リテラル ... を使う人もいる。
- ラムダ式
- キーワード lambda で作る、名前のない小さな関数。lambda a, b: a+b は二つの引数の和を返す。関数オブジェクトが要求されている場所ならどこでも使えるが、構文上は単一の式に制限される。list.sort() の key に渡す使い方がある。
- list.extend()
- 渡した反復可能オブジェクトの要素を1つずつ取り出してリストの末尾に足すメソッド。渡した値そのものを1個の要素として足す append とは結果が異なる。
- タプル
- 作ったあとに要素を変更できないシーケンス型。インデックス指定とスライスはリストと同じように使える。
- get()
- 辞書のメソッド。指定したキーの値を返し、キーが無い場合は例外ではなく既定値を返す。キーが存在しない可能性がある場面で使う。
- 辞書型
- キーでインデックス化されるデータ型(dictionary)。範囲の数でインデックス化されるシーケンスとは異なる。キーには文字列・数値を常に使え、文字列・数値・その他のタプルだけを含むタプルも使えるが、変更可能なオブジェクトを直接・間接に含むタプルやリストは使えない。存在しないキーを d[key] で取り出すと KeyError になり、get() を使えばこのエラーを避けられる。
- リスト内包表記
- 括弧の中に式、for 句、0個以上の for 句か if 句を書いてリストを作る書き方。for ループを1行で書ける簡潔な手段で、[x**2 for x in range(10)] のように書く。式がタプルのときは丸括弧が必要である。
- 集合型
- set() で作るデータ型。空集合を作るには set() を使い、{} では空の辞書ができる。
- del 文
- リストから要素を削除する際、値を指定する代わりにインデックスを指定する文。pop() メソッドと違い、値を返さない。リストのスライスを除去したり、リスト全体や変数全体を削除したりすることもできる。del a の後で名前 a を参照するとエラーになる。
- is 演算子
- 演算子 is および is not は、二つのオブジェクトが実際に同じオブジェクトであるかどうかを調べる。値が等しいかを調べる == とは別の判定で、in および not in のメンバーシップテストと同じく比較演算子として扱われ、すべての比較演算子は同じ優先順位を持つ。
- 切り捨て除算
- // 演算子による除算。商の小数部分を切り捨てる。両辺が整数なら結果も整数になる。割り切れる場合でも常に浮動小数点数を返す / とは別の演算子である。
- 負のインデックス
- 末尾から数える位置の指定。-1 が最後の要素、-2 が後ろから2番目を指す。スライスの開始位置にも使える。
- スライス
- s[i:j] のように範囲を指定して一部を取り出す書き方。開始値は含まれ、終了値は含まれないため、s[:i] + s[i:] は常に s と等しい。最初のインデックスを省略すると 0、二番めを省略すると対象のサイズとみなされる。範囲外のインデックスを指定してもエラーにならず、word[4:42] のように扱われる。
- 可変
- 可変とは、作ったあとに中身の要素を入れ替えたり足したりできる性質のことで、リストは可変、文字列は不変(作ったあとに一部を入れ替えられない)という違いで区別する。リストは可変型で、cubes[3] = 64 のように要素を代入で入れ替えられ、append() で末尾に足せる。文字列は不変で、インデックスで指定した場所への代入はエラーになる。
- finally節
- try 文に付けられる後片づけのための節。try 節が例外を発生させるか否かに関わらず必ず実行される。try・except・else 節のいずれで例外が発生した場合、finally 節の実行後に例外が再送出される。
- raise文
- 特定の例外を発生させる文。引数は例外インスタンスか例外クラスで、クラスを渡すと引数無しのコンストラクタで暗黙的にインスタンス化される(raise ValueError は raise ValueError() の省略記法)。except 節の中で単独の raise を書くと例外を再送出できる。from 句で他の例外から直接影響されていることを示せ、from None で自動的な例外の連鎖を無効にできる。
- try文
- 例外を捕捉して処理する構文。try 節の実行中に例外が起きると残りの try 節を飛ばし、例外の型が except 節の指定と一致すればその except 節を実行して try 文の後へ進む。一致しない例外は外側の try 文へ渡され、どこでも処理されなければ未処理の例外としてエラーメッセージを出して停止する。except 節が複数あるときは、最初に一致した節だけが実行される。
- import 文
- 他のモジュールで定義された名前を使えるようにする文。import fibo と書くと、fibo で定義された関数の名前は現在の名前空間に直接は追加されず、モジュール名 fibo だけが追加される。関数にはモジュール名を使って fibo.fib(1000) のようにアクセスする。慣習としてモジュールの先頭に置くが、必須ではない。
- from 〜 import
- あるモジュール内の名前を、import を実行しているモジュールの名前空間内に直接取り込む import 文の変型。from fibo import fib, fib2 の後は fib(500) と呼び出せるが、モジュール名 fibo は定義されない。from fibo import * はアンダースコア(_)で始まるものを除くすべての名前を取り込むが、未知の名前が定義済みの名前を上書きする可能性があるため、公式チュートリアルは賛同できないとしている。
- __name__ == "__main__"
- モジュールの末尾に if __name__ == "__main__": と書くと、そのファイルをimportできるモジュールとスクリプトの両方として使える。python fibo.py のように直接実行したときは __name__ に __main__ が設定されるため、この部分のコードが実行される。importされたときは実行されない。
- パッケージ
- モジュール名前空間を「ドット付きモジュール名」で構造化する手段。モジュール名 A.B は、パッケージ A のサブモジュール B を表す。ディレクトリをパッケージとして扱わせるには、namespace package という高度な機能を使う場合を除き、__init__.py というファイルが必要になる。
- クラス変数
- クラス本体の直下に書いて、そのクラスから作られる全インスタンスが同じ値を参照する変数。公式チュートリアルの class Dog では、直下の kind = 'canine' がこれに当たり、d.kind も e.kind も 'canine' になる。値を一か所で持つので、犬という種類に共通の情報など、個体ごとに変えない値の置き場所に向く。個体ごとに別の値を持つ変数はインスタンス変数と呼ぶ。
- インスタンス変数
- __init__ の中で self.名前 = 値 と代入して作り、インスタンスごとに別々の値を持つ変数。公式チュートリアルでは self.name = name がこれに当たり、d.name は 'Fido'、e.name は 'Buddy' になる。同じクラスから作っても、一方を書き換えてももう一方には影響しない。全インスタンスで同じ値を共有したい場合はクラス変数を使う。
- イテレータ
- for 文が裏で使う仕組み。for 文はコンテナに iter() を呼び、iter() は __next__() メソッドを持つイテレータオブジェクトを返す。これ以上要素がないと __next__() が StopIteration 例外を送出してループが終了する。自作クラスは __next__() を持つオブジェクトを返す __iter__() を定義すればイテレータとして振る舞える。
- ジェネレータ
- イテレータを作るための簡潔なツール。通常の関数のように書き、データを返すときに yield 文を使う。next() が呼ばれるたびに中断した処理を再開し、ローカル変数と最後に実行した文を記憶する。__iter__() と __next__() は自動で作られ、終了時に StopIteration が自動で送出される。角括弧ではなく丸括弧で囲むジェネレータ式もある。
- sys.argv
- スクリプト名と引数を指定してインタープリタを起動したとき、それらを文字列のリストに変換して格納する sys モジュールの変数。スクリプト名も引数も指定しない場合は sys.argv[0] が空の文字列、-c command を使う場合は '-c'、-m module を使う場合はモジュールのフルパスになる。
- UTF-8
- Python のソースファイルで標準として扱われる文字コード。世界中のほとんどの言語の文字を、文字列リテラル・識別子・コメントに同時に書ける。標準以外を使うときは、ファイルの先頭行に文字コードを指定する特別なコメントを置く。先頭行が shebang の場合は2行目に置く。
- f-string
- フォーマット済み文字列リテラル。文字列の内側の { と } の間にPythonの式を書ける。式の後ろにフォーマット指定子を付けると値のフォーマット方式を制御できる。f'{math.pi:.3f}' は 3.142 になる。
- str.format()
- 文字列中の波括弧を、渡した引数で置き換えるメソッド。波括弧内の数字は format() に渡した引数の位置を指定し、'{1} and {0}'.format('spam', 'eggs') は 'eggs and spam' になる。キーワード引数を渡した場合は、その名前で値を参照できる。
- with文
- ファイルのように定義済みのクリーンアップ処理を持つオブジェクトを、常に正しく後始末するための構文。with open("myfile.txt") as f: と書くと、処理中に問題があってもファイル f は常に閉じられる。同等の try-finally より短く書ける。
- venv
- 仮想環境を作るためのモジュール。python -m venv tutorial-env の形で作成する。アプリケーションごとに別々の仮想環境を作ると、同じパッケージの異なるバージョンを要求する競合を避けられる。有効化したあとに python を実行すると、その仮想環境のPythonインタプリタが呼び出される。
- pip
- パッケージのインストール・アップグレード・削除を行うプログラム。デフォルトでは Python Package Index (PyPI) からパッケージをインストールする。python -m pip install requests==2.6.0 のようにパッケージ名の後ろに == とバージョン番号を付けると、特定のバージョンを指定できる。
執筆: ミナト編集部(運営者情報を見る)
