40のおっさんのPython学習記録

20年以上前、学部の必修のC言語が全く理解できずに同級生に放り投げ、その後コーディングから遠ざかったガチ文系のおっさんが、ふと思い立ってPythonに挑戦しています。

条件分岐と例外処理

Pythonは条件分岐は

if 条件式1:
    条件式1が満たされる場合の実行式
elif 条件式2:
    条件式2が満たされる場合の実行式
elif 条件式3:
    条件式3が満たされる場合の実行式
else
    上記の条件式のどれも満たさない場合の実行式

という感じ。ExcelのようにIF(IF(...とifの入れ子構造を作らなくてもいいので単純にできそう。

例外処理というのは簡単に言うとエラーを吐いた場合に、エラーはエラーとしてプログラムを続けたい場合の処理方法。

#!/usr/bin/env python
import sys

for fn in sys.argv[1]:
    try:
        f = open(fn)
    except FileNotFoundError:
        print("そんなファイルねえよボケ")
    else:
        try:
            print("ファイルサイズは",len(f.read()))
        finally:
            f.close()

tryの後にエラーを吐く可能性が高い実行式を入れ、exceptの後に例外クラス名を書き込む。例外クラス名とは要するに公式なエラーコードのようなもの。elseの後にエラーが発生しななかった場合の実行式を書く。最後のfinallyの後はエラーが発生しようがしまいが実行する式を書く。

例外処理に使えるものとしては他にはWith分が存在する。

with open(fn) as f:
    print("ファイルサイズは",len(f.read()))

with文の場合はエラーが出た場合はwith文の中には入らず、エラーがでなかったばあいはwith文の中の式が実行される。for exceptよりも場合によっては簡潔に書ける。