DIVE TO EXAMのPython試験対策模試をうけて
DIVE TO EXAMで受験できる模試を受けて1000点取れるようにはなりましたが、得点源である3章、4章、5章、8章がやや弱いと感じました。
ということで、Pythonチュートリアルに立ち返って、ここは出そうだなというところに山を掛けてみようと思います。
3章 気楽な入門編(出題率15.0%,出題数6)
数値
# 剰余算 # 余りである、2をかえす。 # 4章で素数探索ループでも使われています。 17 % 3
配列外参照
word = 'Python' word[99] # 配列外のIndexを指定した場合、IndexErrorが発生 # Javaで言うところのIndexOutOfBoundsexceptionが発生するわけですね # ところが、 word[4:99] # スライシングの場合は、範囲外の参照をいい具合に処理し、 # 上記の実行結果は'on'となります
多重代入、printの改行抑制等
# 以下式にて多重代入できる a, b = 0, 1 while b < 10: print(b, end=',') # end=で改行抑制、出力末尾文字列の変更ができる a, b = b, a+b # 出力結果 1,1,2,3,5,8
4章 制御構造ツール(出題率22.5%,出題数9)
if文
# if文 x = 10 if x < 0: print('負数') elif x == 0: # Javaでいうelse ifはelifで表現 print('ゼロ') else print('その他') print('x') # 結果は # その他 # x
for文
# for文 words = ['one','two','three'] for w in words: print(w, len(w)) # len関数は文字列の長さを返す one 3 two 3 three 5 # ちなみに以下でも同様の結果となります for i in range(len(words)): print(words[i], len(words[i])) # その他 # x
break文,continue文
break文はfor文を抜けるときに使い、continue文ではループ内の処理をスキップするときに使います。
pp.26-7のサンプルプログラムは、どこにbreak,continueを入れればいいか確認しておきましょう。
docstring
ドキュメンテーション文字列docstringはクラスの説明に使います。Javaでいうjavadocですね。
inによる判定
aizen = 'No One Stand On The Sky' if aizen in ('No', 'N'): print('最初から誰も天に立ってなどいない') if aizen in ('Im'): print('私が天に立つ')
lambda(ラムダ)式
lambda式は無名関数を書くことができる。しかし、この形式は単一の指揮しか持つことができない。
コーディングル規約
- タブを使用しない。インデントはスペース4つとする
- 79文字以下で折り返す
- 可能であればコメント行は独立させる
- 演算子の周囲、カンマの後ろにはスペースを入れる。ただし、かっこのすぐ内側には入れない
- クラスはキャメルケース(ClassNameのように)で、関数、メソッドはローワーケース(local_argのように)とする。参考
- メソッド第一引数はselfを使う
5章 データ構造(出題率17.5%,出題数7)
リストオブジェクトのメソッド及びリスト操作
# リストからすべてのアイテム削除 # del a[:]と等価 list.clear() # リストコピーを返却する # a[:]と等価 list.copy()
from collections import deque que = deque(['chad','ichigo','ishida']) que.append('byakuya') que.append('abarai') # 先頭から高速に要素を削除する場合 que.popleft() # 'chad' que deque(['ichigo','ishida','byakuya','abarai']) # 'chad'の霊圧が消えた
集合関数set
set関数は重複しない要素を順不同で取得できる。
ディクショナリによるループ
veg = {'ニンジン': '黄', 'かぼちゃ': '緑','ナス': '紫'} for v, c in veg.item(): print(v, c) # 結果 # ニンジン 黄 # かぼちゃ 緑 # ナス 紫
enumerateによるループ
for i, v in enumerate(['zero','one','two','three']): print(i, v) # 結果 # 0 zero # 1 one # 2 two # 3 three
8章 エラーと例外(出題率10.0%,出題数4)
try...except...else...finally
try内にはエラーが起きそうな処理(ファイルオープン等)を記載し、エラーが発生しない場合の処理はelse節で記載する。
finally節はエラーが起きようが起きまいが、try文が終了前に実行される。
ちなみに、except節で補足していない例外(以下の例の場合はZeroDivisionError等)はfinally節処理後にトレースが表示される。
try raise OSError('…チャドの霊圧が…') # 1 print('消えた…') #処理されない except ValueError: print('霊圧には数値以外入力できません') #今回は処理されない except OSError: print('いつから消えたと錯覚していた') # 2 else: #例外が発生しない場合の処理 print('なん……だと……') finally: print('今までの戦いに勝てたのは、すべて月島さんのおかげじゃないか!') # 3 # 結果 # …チャドの霊圧が… # いつから消えたと錯覚していた # 今までの戦いに勝てたのは、すべて月島さんのおかげじゃないか!
最後に
ブリーチが終わってかなり経つ中で、このネタはかなり寒いかもしれません。
皆様の合格を心よりお祈りしております。
追伸--とうとうデータ分析試験も2019年夏に開催予定だそうなので、今のうちにエンジニア認定基礎試験に合格し、キャッチアップしましょう。
わっしょーい!
クラウドWatchさんにも!今回の発表は15メディア掲載声が見えてきました。
ありがとうございます~!「Python 3 エンジニア認定データ分析試験」を2019年夏から開催https://t.co/bWFXjWPOot https://t.co/bWFXjWPOot
— pythonic-exam (@pythonic_exam) 2018年9月14日
主教材は以下です。