0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python3 エンジニア認定実践試験を受けるにあたって

Last updated at Posted at 2025-12-27

Python3 エンジニア認定実践試験

結果

合否

2026.01.18に試験を受け合格

コメント

webの練習問題と類似の問題が少なかった。
受ける人は、webの練習問題の範囲だけでなく書籍を片隅まで読むや、思いっきって1回受けてみるのが良いかも知れません。

前提

出題範囲

出題のメイン

内容 件数 割合 備考
3章 Pythonの言語仕様 7 17.5%
4章 Pythonのクラス 3 7.5%
6章 テキストの処理 4 10.0%
9章 データ型とアルゴリズム 5 12.5% 9.3 bisectは除く9.5 pprint は除く
16章 テスト 3 7.5% 16.4 pytest は除く16.5 pydoc は除く

出題されない範囲

内容
5.2章 mypy
7章 数値の処理
8.4章 dateutil
9.3章 bisect
9.5章 pprint
12章 データ圧縮とアーカイブと永続化
13.3章 configparser
13.4章 PyYAML
13.5章 openpyxl
13.6章 Pillow
14.3章 Requests
14.5章 emai
15章 HTML/XMLを扱う
16.4章 pytest
16.5章 pydoc
17.3章 traceback
18.3章 cryptography
19章 並行処理、並列処理

ほぼ出題されない範囲

内容 件数 割合 備考
1章 Pythonの環境 1 2.5%
18章 暗号関連 1 2.5% 18.3 cryptography は除く

引用
https://www.pythonic-exam.com/exam/jissen

1章 Pythonの環境

  • python命名規則
関数や変数の名前は、lowercase
パッケージとモジュールの名前は、lowercase
クラスの名前、例外はCamelCase

3章 Pythonの言語環境(例外,with,引数,ジェネレーター,デコレーター)

コンテキストマネージャ

  • contextlib
    • withを自作したくなった時に利用する
    • 前処理と後処理を必ずセットで行いたい処理を短く・安全に・読みやすく書きたいときに使う

ジェネレイター(内包表記を以下※()で書くとジェネレイターになる)

gen = (x * 2 for x in range(5))

デコレーター

---

### @property

* **メソッドを「属性のように」使えるようにする**
* `obj.method()` を `obj.method` の形で参照可能にする

---

### @patch

* **ユニットテストで、指定したメソッドやオブジェクトをモックに置き換える**
* テスト対象を外部依存から切り離すために使う

---

### @classmethod

* **メソッド内でクラス自身を参照できるようにする**
* 第1引数としてクラス(`cls`)を受け取る

---

### @staticmethod

* **クラスやインスタンスに依存しないメソッドを定義する**
* `self` や `cls` を使わない関数をクラス内に置くためのもの

---

4章 class

eq()メソッドは比較演算子==の処理を変更する。(なので,==で繋げた場合が変更されるよ)

4章 zip関数 or zip_longest関数

zip_longest関数だと,長い方に合わせることができる。ない場所には,Noneが入る

6.3章 正規表現re

search 指定された文字列が正規表現に一致するか(全て)
match 指定された文字が正規表現に一致するか(文字列の先頭のみ)


オプション
「re.I」もしくは「re.IGNORECASE」を付けることで、大文字・小文字を無視できます。
「re.A」もしくは「re.ASCII」は、半角英数字などのASCII文字のみにマッチさせるオプションです。

comlie を使うことで以下の書き方が可能

import re

pattern = re.complie('x.z')

pattern.search('aaaa')

返り値は, マッチオブジェクト or None
obj.group(0) は全体を返す
obj.group(1) は1グループ目を返す(listなどとは異なって,0ではなく1からはじまる)

よく使う正規文字

\d 数字
\D 数字以外
\s 空白文字
\S 空白文字以外
\w 任意の英数字
\W 英数字以外
. 任意の1文字
^ 先頭
$ 末尾
* 0文字以上の繰り返し
+ 1文字以上の繰り返し
? 0回か1回の繰り返し
{m} m回の繰り返し
{m, n} m回以上、n回以下の繰り返し
[...] 指定したいずれかの文字
[^...] 指定したいずれかの文字以外
(x|y) xかyの選択

6.4章 Unicodedata

lookup(name) # unicodeに対応する値を返す
unicodedata.name(chr) # chrに対応するunicodeを返す
unicodedata.normalize('NFKC','aaaaa') # 英数字は半角,日本語は全角に正規化できる

8章 日付と時刻の処理

weekday()メソッドは、月曜日を0、日曜日を6として返す。
isoweekday()メソッドは、月曜日を1、日曜日を7として返す。

9章 データ型とアルゴリズム

(operator、collections、enum、itertools、copy)

9.1 ソート operator

  • itemgetter()
  • attrgetter()

9.2 コンテナー型を扱う collections

9.4 enum

import enum

@enum.unique
class Sample(enum.Enum):
    MUSIC = 1
    hogehoge = 1

上記のデコレーターで,同じ値は適宜をしないようにできる。(上記の場合はエラーになる)

urlparse()メソッドはURLを分解する。

そして,parse_qs()は辞書を返し、parse_qsl()はタプルを要素に持つリストを返す。

13章 特定のデータフォーマットを扱う(csv,json)

csvモジュール

csvモジュールのreader()関数とwriter()関数の引数

【quotechar】
シングルクオートなどの引用符の指定

【delimiter】
タブなどの区切り指定

【lineterminater】
各行の終端文字の指定

17章 デバッグ

(timeit、logging)

pdbモジュールを呼び出してプログラムを実行すると、異常終了した際に自動的にデバックモードに移行する。

loggingモジュール

標準で以下の6つのログレベルが定義されている。上から深刻度が高い

CRITICAL
ERROR
WARNING
INFO
DEBUG
NOTSET

辞書の処理

keys() → キーだけを取得

values() → 値だけを取得

items() → (キー, 値) のペアを取得 ← これが正解

timeit

def my_function():
return 2

正しい

timeit.timeit('my_function()', globals=globals(), number=1000)

これも正しい

timeit.timeit(my_function, number=1000)

chain() の引数は イテラブルならOKです。

リスト → OK

タプル → OK

文字列 → OK(文字列はイテラブル)

※intは渡せない。

copy

copyfileは内容
copyは内容と権限
copy2は内容と権限とメタデータ

練習問題

あまり触れたことないリスト

  • timeitモジュール
  • breakpoint()関数
  • unittest.mock
  • doctest
  • shutil
  • sys
  • collectionsモジュールのCounterオブジェクト
  • デコレーター
  • defaultdict

復習する内容

中級
問題03 PEP8の命名規則。
問題07 func(num, **dic)らへんの関数の引数
問題29 p.glob() はジェネレータを返す。
問題37 MagicMockの,assert_called_once()と,assert_called_wtihの利用。

assert_called_once()は,モックが一回だけ呼ばれていた場合は,None,2回以上呼ばれていた場合は,AssertionErrorが返る。

assert_called_with()は,指定していたモックが直前に呼ばれていた場合は,Noneを返し,直前でない場合や1回も呼ばれていない場合は,AssertionErrorが返る。

上級
問題10 functools.wraps
問題12 dataclass系の問題。 asdictとastupleのみ
問題25 itertools系の問題
問題26 copy系の問題。copy.copyは参照で,copy.deepcopyはコピーなど
問題37 patch系の問題
問題39 logging系の問題で,階層構造の定義系の問題

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?