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日
主教材は以下です。

