• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

Pythonエンジニア認定試験

date: 2020-12-28 excerpt: Pythonエンジニア認定試験の資格取得

tag: 資格試験pythonエンジニア認定試験


Pythonエンジニア認定試験の資格取得

試験の種類

  1. 基礎試験
  2. データ分析試験

誰が開催している?

  • Odyssey CBT

どこで受けられる?

  • エルーダ・ラーニング

いくらで受けられる?

  • 基礎試験: 11000円
  • データ分析試験: 11000円

いつ受けられる?

  • 大体2週間以内

何割で合格?

  • 基礎試験: 7割
  • データ分析試験: 7割

結果

基礎試験
合格

データ分析試験
合格

勉強方法

基礎試験
ノー勉での80%程度を取得することができる
問題が誤っているのか、Pythonインタプリタで動作させても動かない構文が出題されるなど、あまり問題の品質は高くないようである。

認定テキストとして、Pythonチュートリアル 第3版が紹介されているが、これはオンライン上のPython チュートリアルと等しいらしく、オンライン上の資料は無料でもあり、こちらを精読して挑むと良い。

基礎試験内容

インタプリタ・対話モード

  • pythonと入力する
  • python -c commandで起動する
  • python -m module [arg]でモジュールを指定して起動する

引数の受け渡し

  • sys.argvに格納されている

ソースコードと文字コード

  • デフォルトではUTF8
  • 特別な文字コードを使うには# -*- coding: cp1252 -*-などとする

電卓として使う

  • インタプリタを起動して入力する

変数_

  • 最後に計算された値が_に代入される

リテラルの結合

  • “Python” == “Py” “thon”
  • 変数に代入して結合するなどはできない

スライス

  • word[0:2]のとき, index(2)は含まれないことに注意

範囲外アクセス

  • word[4:42]など42などが存在しないとき、うまく対処してくれる

strへの代入

  • サポートされない

浅いコピー

  • sequence[:]など:でアクセスする

listは代入可能

  • sequence[4]=4はOK

:でリストを初期化

  • sequence[:]=[]

range

  • range(0, 10, 3) -> 0, 3, 6, 9

pass

  • 何もしないこと

関数のデフォルト引数は記憶する

def f(a, L=[]):
    L.append(a)
    return L

print(f(1))
print(f(2))
print(f(3))

の出力結果は

[1]
[1, 2]
[1, 2, 3]

キーワード引数の制限

  • キーワード引数がない、ある、あるの呼び出しは合法である
  • キーワード引数がある、ないなどの呼び出しは違法

def foo(*arguments)

  • 引数に入れて呼び出したとき、リストとして受け取るものになる

def foo(**keyword)

  • 引数に入れて呼び出したとき、dictとして受け取るものになる

def foo(arg, /)

  • 引数に/を入れると必ずpositionで呼び出すことになる
  • つまり、foo(0)は合法だが、foo(arg=0)は違法

def foo(arg, *)

  • 引数に*を入れると必ずkeyword付きで呼び出す必要がある
  • つまり、foo(0)は違法だが、foo(arg=0)は合法

関数の引数の一般化

  • def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2)

任意引数リスト def concat(*args, sep="/")

  • concat("earth", "mars", "venus") -> “earth/mars/venus”
  • concat("earth", "mars", "venus", sep=".") -> “earth.mars.venus”

呼び出すときに**dictで値を渡す

  • def foo(bar, hoge)のような関数があったときに、def foo(**{"bar":1, "hoge":2})のように呼び出せる

関数が持つ__doc__というドキュメンテーション文字列

def foo():
  """This is doc of foo
  """
  pass

print(foo.__doc__)

>> "This is doc of foo"

関数のアノテーション

def f(ham: str, egg: str) -> str:
  print(f.__annotations__)
  return ham + "and" + egg 

f("spam", "egg")

>> {'ham': <class 'str'>, 'return': <class 'str'>}

標準関数でリストを転置する

matrix = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12],
]

list(zip(*matrix))
>> [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

del list[:]

  • あるリストの値をまとめて消すとき

tupleの初期化

  • t = 123, "hello" -> (123, "hello")
  • 代入は違法

集合型

  • a-b: bに含まれなく、aのみの要素
  • a|b: aまたはbに含まれる要素
  • a&b: aかつbに含まれる要素
  • a^b: aまたはbに含まれるが、同時に含まれない要素

float("NaN")

  • Not a number
  • math.isnan(value)でチェックできる

モジュール名を取得する__name__

  • np.__name__ -> "numpy"

モジュールの検索パス

  • 優先順位があり、スクリプトのパス, PYTHONPATHで定義された場所, インストールされたデフォルトの順番

dir関数

  • モジュールがどんなメソッド・プロパティを持つか、listで表示する
  • 引数無しで実行すると現在のスクリプトについて表示する

builtinsモジュール

  • 何もしないでも読まれるもの
  • import builtins; dir(builtins)で見れる
  • 標準的な例外や型など

パッケージ

  • ディレクトリをパッケージとして扱わせるには、__init__.pyが必要
  • __init__.pyにパッケージの初期化コードを書くことができる
  • __all__変数は、パッケージに含まれるpythonファイルのモジュール名を列挙することで、from foo import *のようにglobしたときにすべてimportできる

パッケージ内参照

  • from . import foo同じディレクトリのfooをimport
  • from .. import bar上のディレクトリのbarをimport
  • from ..spam import egg上のディレクトリにあるspamフォルダ内のeggをimport

f-string

  • print(f”{name:10} ==> {phone:10d}”) -> これで幅を指定できる

finally節

  • tryの成功失敗に関わらず、実行される

例外のelse節

  • どのexceptにもマッチしないとき、実行される

nonlocal

  • 関数内部からメンバ変数にアクセスできる

global

  • globalスコープにアクセスできる(メンバ変数の粒度には影響しない)

generator

  • 関数内部でyeildして値を逐次取り出すようにしたもの
  • 丸括弧でlist内包表記したものはgeneratorとして扱われる

reprlib

  • 出力が短くなりprintデバッグよりマシな感じになる

pprint

  • indentを追加するなど構造的に出力する

文字列テンプレート

from string import Template
t = Template('${village}folk send $$10 to $cause.')
t.substitute(village='Nottingham', cause='the ditch fund')
'Nottinghamfolk send $10 to the ditch fund.'

array

  • より省メモリな特定の型しか許容しないarray
  • Hとは2バイト符号なしという意味
from array import array
a[1:3]
array('H', [10, 700])

venv

  • 仮想環境を作成する
  • venv内では最初に参照するライブラリが独自のものになる

pip

  • pip freez今のライブラリを標準出力
  • pip install -r requirements.txtで環境を復元


資格試験pythonエンジニア認定試験 Share Tweet