Python検定 合格できた~!
Python 3 エンジニア認定基礎試験を受けてきました スコアは850点(満点:1000点)でした 思い出せる限り、間違えた・解答するのに悩んだ問題をふりかえります
間違えた問題
リスト操作
リストの値を表示する
list = [1, 2, 3] # 以下の2つがリストの値を表示する list[:] list.copy()
list.count()
を選んでしまいました(list.count(1)
で値を検索する関数)
random()関数
import random random.random() # 0.0から1.0未満の小数が表示される
整数が表示されると勘違いしていた
dictionary
- key:valueなので重複したkeyは持てない
- keyの型はそろえなくてもOK(
dic = {1:'one', '2':'two'}
もちゃんとdictで扱える) - タプル
(key , value)
からdictにすることができる(タプルは(key : value)
じゃないので注意)
関数の外にあるコード
コードは上から実行されていくので、関数の外にあるコードも普通に実行される
def test1(): print('test1') print('test2') if __name__ == '__main__': test1() # コマンドから「python ファイル名」で実行 # test2 # test1 と表示される
if __name__ == '__main__':
があると、そのブロック内しか実行しないと勘違いしていた
jsonシリアライズ
dump、dumpsなどsがつく・つかないで処理の違いが覚えられていなかった
- シリアライズ(dictオブジェクト → json形式の文字列)
- Pythonだとjson形式{key:value}
はdict扱いになるのでStringにする
- json.dumps()
でStringにする
- json.dump()
でファイルに書き込む
- デシリアライズ(json形式の文字列 → dictオブジェクト)
- json.load()
でjsonファイルを読み込んでdictにする
- json.loads()
はjson形式の文字列をdictにする
悩んだ問題
整数型
Python3ではlongはintに統合されたので、整数はすべてint型になった
set
setは重複した値を持たず、順番も持たない
value = {'A', 'B', 'A', 'C'} value # {'A', 'B', 'C'}が表示される
{ }
があるとdictなのかsetなのか悩んでしまった
実行中のOSを調べる
osモジュールのos.name
でWindowsかLinuxか分かる(Windows:'nt'、Linux:'posix')
os.versionはないので注意
例外raise
try: raise TypeError('例外が発生しました') except TypeError: raise # TypeError:例外が発生しました が表示される
tryブロックで例外msgをセットしているので、exceptブロックでraise
してもmsgは引き継がれる
ZeroDivisionError
x = 10 / 0 # ZeroDivisionError発生 y = 0 / 10 # y=0.0
0で割るとZeroDivisionErrorになる(0を割るのはエラーにならない)