DIVE INTO EXAMの模試とPythonチュートリアルをマッピングしてみた
定時ダッシュのためにPythonを勉強します。
そのマイルストーンとしてPython 3 エンジニア認定基礎試験受験をきめました。
試験については、以下をごらんください。
Python 3 エンジニア認定基礎試験のためにDIVE INTO EXAMの模試を受けて勉強しておくべきところのまとめてみた
さて、DIVE INTO EXAM模試からPythonチュートリアルのどこを勉強しておけばいいかをマッピングしました。
初見で模試受験するにはなかなかハードルも高いので、いったんここで示したページを勉強してから挑めば理解度のチェックにもなるかと思います。
オススメとしては、本ページで模試に関係のある個所をマッピングしたので、
該当箇所に付箋を貼って意識を払いつつ読み進めていくのがいいかと思います。
読み進める際には以下の6つの読書テクニックをご参照。
読書テクニック
- プレディクティング:本の内容を予測してから読む
- ビジュアライジン :視覚的に想像する
- コネクティング :自分の知っていることや本の内容を結びつけていく
- サマライジング :要約する
- クエスチョニン :自分に対して本の内容を質問する
- インフィリング :行間を読む
1章 食欲をそそってみようか(出題率2.5%,出題数1)
p.2 Pythonのプログラミング言語的な分類
インタープリタ言語である。
2章 Pythonインタープリタの使い方(出題率2.5%,出題数1)
p.6 コマンドプロンプトからのインタプリタ終了方法
quit()で終了できる
p.6 インタプリタのオプション
python -c コマンド として渡された Python を実行
python -m モジュールをスクリプトとして実行
3章 気楽な入門編(出題率15.0%,出題数6)
p.9 コメントについて
コメントはハッシュ記号「#」で行い。コメントは先頭行から始めてもいいし、コードの後につけることもでき、さらに省略も可能。
但し、文字列リテラル内部はつけることができない。
pp.10-2 数値
フロア除算(余りを切り捨て)
17 // 3 5
累乗
5 ** 2 25
対話モードでの変数「_」
最後に表示した式が代入されている。
tax = 12.5 / 100 price = 100.50 price * tax 12.5625 price + _ 113.0625
複素数
虚数部は接尾辞に「j」または「J」を付ける。
pp.13-6 文字列
raw文字列によるエスケープ
バックスラッシュが含まれる文字列が特殊文字(\nなど)に解釈されるのを防ぐ際には、文字列を囲う最初の引用符の前にrをつける
print(r'C:\n\t') C:\n\t
文字列と演算子
文字列は⁺演算子で結合できるし、*演算子で繰り返しを指定することもできる。
スライシング(切取)
word = 'Python' word[:2] # 'Py'が表示される。参考1の0から2までの文字列が表示される #(word[2]は含まれないので注意) word[4:] # 'on'が表示される。参考1の4から最後までの文字列が表示される #(word[4]は含まれないので注意) word[-2:] # 'on'が表示される。参考1の-2から最後までの文字列が表示される word[2:5] # 'tho'が表示される。参考1の2(を含み)5まで(5を含まない)が表示される。
参考1
+---+---+---+---+---+---+ | P | y | t | h | o | n | +---+---+---+---+---+---+ 0 1 2 3 4 5 6 -6 -5 -4 -3 -2 -1引用元:https://docs.python.jp/3/tutorial/introduction.html#strings
変更不能体(immutable)
文字列は変更不能体であり、改変できない。ほかには数値、タプルも変更不能体である(p.94)。
4章 制御構造ツール(出題率22.5%,出題数9)
p.25 range()関数
pring(range(10)) range(0,10)
p.27 pass文
pass文は何もしない。構文的に文が必要だが、記述するものがない場合に使う。
pp.30-1 引数のデフォルト値
デフォルト値の評価は関数定義で、スコープ内で行われる。そしてデフォルト値の評価は一度しか起きない。
i = 5 def f(args=i): print(args) i = 6 f() #出力結果は5となる
pp.32-3 キーワード引数
関数コール時には、必ず位置引数が先でキーワード引数を後にしなければならない。
5章 データ構造(出題率17.5%,出題数7)
p.41 リストについて
list.append(x) # リストの末尾にアイテムを1つ追加する list.pop([i]) # 指定された位置のアイテムをリストから削除し、アイテムを返す。
pp.44-5 リスト内包
リストの内包とは、for文をネストしなくても全体を大かっこで囲むことで簡潔に表現できる。
[(x, y) for x in [1,3] for y in [3,1,4] if x != y] #結果は[(1,3),(1,4),(3,1),(3,4)]
pp.46-7 zip関数
zip関数は配列の行列を入れ替えます。入れ替えた結果はタプルで配列に格納される。
matrix =[ ['a','b','c'], [1,2,3]] list(zip(*matrix)) # [('a',1),('b',2),('c',3)]
pp.48-9 タプル
タプルはシーケンスデータ型であり、特徴として()で囲まれ各要素がカンマで区切られている。
各要素はアンパッキングできる。
p.52 辞書内包
辞書内包により式からディクショナリが生成できる。
{y: y**2 for y in (1,2,3)} # 結果{1: 1,2: 4,3: 9}
pp.54-5 条件についての補足(ブール演算の短絡評価)
ブール演算子 and と or は、いわゆる 短絡 (short-circuit) 演算子です。
これらの演算子の引数は左から右へと順に評価され、結果が確定した時点で評価を止めます。
引用元:https://docs.python.org/ja/3/tutorial/datastructures.html#more-on-conditions
name1,name2,name3,name4= '','suzuki','tanaka','sato' selected_name = name1 or name2 or name3 or name4 # '' or 'suzuki' でtrueとなりあとは評価されない。 print(selected_name) # suzuki;
詳細はこちらをご参照。
6章 モジュール(出題率5.0%,出題数2)
p.61 sys.path
入力スクリプトのあるディレクトリ
PYTHONPATH
インストールごとのデフォルト
p.61 コンパイル済みPythonファイル
コンパイル済みのモジュールは.pycで作られる。
p.63 dir()関数
dir()関数でモジュールが定義していいる名前を確認できる。
p.65 パッケージ
パッケージとは、どっと区切りモジュール名によってPythonのモジュールを構築する方法。
7章 入出力(出題率2.5%,出題数1)
p.74 string.format()
string内の{}にformatで指定した文字列を挿入できる。
print('{0} and {1}'.fortma('you', 'I')) # you and I print('{1} and {0}'.fortma('tomo', 'tetsu')) # tetsu and tomo
p.76 %演算子による文字列フォーマッティング
import math print( 'πの値はおよそ %5.2fである' % math.pi) # πの値はおよそ 3.14である
p.80 JSON文字列表現へのコンバート
moji=[1,'json','list'] json.dump(moji) # 結果は’[1,"json","list"]’
8章 エラーと例外(出題率10.0%,出題数4)
p.84 主な例外の種類
java等ではExceptionですが、PythonではErrorなんですね。わかりやすい。
ZeroDivisionError ゼロ除算時発生
NameError 名前未定義時発生
TypeError 暗黙的に型変換ができない時に発生
p.86 try...except文のelse節
try...except文でチェック不要な例外を意図せずキャッチするときにはelse節を使用する。
else節の挿入箇所はすべてのexcept節より後ろ似て記述する。
p.91 ファイルオブジェクトの適切なクリーンアップ
with文を使用して開くことで、使用後すぐにクリーンアップされる。
with open("file.txt") as file: for line in file: print(line, end="")
9章 クラス(出題率5.0%,出題数2)
p.104 メソッド第一引数のself
慣習的に使われるもの。Pythonにおいてselfという名前に特別な意味はない。
10章 標準ライブラリめぐり(出題率10.0%,出題数4)
p.116 コマンドライン引数
コマンドライン引数はsysモジュールのargv属性に格納されている。
import sys print(sys.argv) # コマンドライン引数がリストで表示される
p.117 正規表現ツール
正規表現を利用する場合、reモジュールをインポートする
p.117 数学ライブラリ
mathモジュールをインポートすると、数学ライブラリが使用できる。
import math math.cos(math.pi / 4 ) # 0.707106....
randamモジュールで乱数を発生させることができる
import randam random.sample(range(50),5) #重複なし乱数リスト [16,3,25,11,48]
p.119 日付と時間
datetimeモジュールをインポートすることで、日付と時間を利用できる。
from datetime import date now = date.today()
11章 標準ライブラリめぐり ─ Part II(出題率2.5%,出題数1)
p.123 出力整形
reprlibモジュールのreprを利用することで出力の長さが制限できる
p.126 バイナリデータを処理するモジュール
structモジュールをインポートすると、可変長のバイナリレコードを処理する関数packやunpackを利用できる。
p.128 ログとり
loggingモジュールでログを記録できる。
12章 仮想環境とパッケージ(出題率2.5%,出題数1)
p.133 仮想環境の生成
仮想環境を生成管理するスクリプトはpyvenvというスクリプトである。
p.136 インストールされたパッケージ一覧取得
インストールされたパッケージ一覧を取得する場合にはpip listを実行することで表示することができる。
14章 対話環境での入力行編集とヒストリ置換(出題率2.5%,出題数1)
p.143 ヒストリの保存先
ヒストリは.python_historyというファイルに保存されている。
一通りやってみて
DIVE INTO EXAMの内容だけでは不十分であると感じました。
特に出題数の多い、4章 制御構造ツール、5章 データ構造、8章 エラーと例外に関しては、もっとテキストを読み込まないと不十分です。