buto > /dev/null

だいたい急に挑戦してゴールにたどり着かずに飽きる日々です

Python 認定試験ふりかえり

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.nameWindowsLinuxか分かる(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を割るのはエラーにならない)