DIVE TO EXAMのPython試験対策模試をうけて
DIVE TO EXAMで受験できる模試を受けて1000点取れるようにはなりましたが、得点源である3章、4章、5章、8章がやや弱いと感じました。
ということで、Pythonチュートリアルに立ち返って、ここは出そうだなというところに山を掛けてみようと思います。
3章 気楽な入門編(出題率15.0%,出題数6)
数値
1 2 3 4 | # 剰余算 # 余りである、2をかえす。 # 4章で素数探索ループでも使われています。 17 % 3 |
配列外参照
1 2 3 4 5 6 7 8 | word = 'Python' word[ 99 ] # 配列外のIndexを指定した場合、IndexErrorが発生 # Javaで言うところのIndexOutOfBoundsexceptionが発生するわけですね # ところが、 word[ 4 : 99 ] # スライシングの場合は、範囲外の参照をいい具合に処理し、 # 上記の実行結果は'on'となります |
多重代入、printの改行抑制等
1 2 3 4 5 6 | # 以下式にて多重代入できる 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文
1 2 3 4 5 6 7 8 9 10 11 12 | # if文 x = 10 if x < 0 : print ( '負数' ) elif x = = 0 : # Javaでいうelse ifはelifで表現 print ( 'ゼロ' ) else print ( 'その他' ) print ( 'x' ) # 結果は # その他 # x |
for文
1 2 3 4 5 6 7 8 9 10 11 12 | # 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による判定
1 2 3 4 5 | 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)
リストオブジェクトのメソッド及びリスト操作
1 2 3 4 5 6 7 | # リストからすべてのアイテム削除 # del a[:]と等価 list .clear() # リストコピーを返却する # a[:]と等価 list .copy() |
1 2 3 4 5 6 7 8 9 | 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関数は重複しない要素を順不同で取得できる。
ディクショナリによるループ
1 2 3 4 5 6 7 | veg = { 'ニンジン' : '黄' , 'かぼちゃ' : '緑' , 'ナス' : '紫' } for v, c in veg.item(): print (v, c) # 結果 # ニンジン 黄 # かぼちゃ 緑 # ナス 紫 |
enumerateによるループ
1 2 3 4 5 6 7 | 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節処理後にトレースが表示される。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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日
主教材は以下です。