Pythonチュートリアルまとめ
Pythonチュートリアル(Python2.x対応)で自分が知らなかったこと, なんとなくは知っていたけど使っていなかった知識で特に重要そうなものをメモしておく.
dir()関数
>>>import sys
>>>dir(sys)
sysモジュールがどのような名前を定義しているのかを確認できる
例外の処理
>>>while True:
try:
x = int(input())
break
except ValueError:
print("数字を入力しろ")
入力として数字を入力すればbreakでwhile文が終わるが, 例えば文字列を入力するとint()へ変換できずValueErrorが生じるtry文はエラーが生じた地点でexcept文へ移動しexcept 文のオプションValueErrorと今回出たエラー(ValueError)と比較一致していたら,except文を実行する.
except(RuntimeError, TypeError, detail)のようにエラー処理を複数指定できる.
クリーンアップ
def divide(x,y):
try:
result = x/y
except ZeroDevisionError:
print("ゼロで割った")
else:
print(result)
finally:
print("finally")
>>>division(2,1)
2 ←エラー処理でない∧ZeroDivisionErrorでもない(当たり前)のでelse文が実行
finally ←finallyが実行
>>>division(2,0)
ゼロで割った ←ZeroDivisionErrorが実行
finally ←finallyが実行
>>>division("2","0")
finally ←"2"/"0"は出来ないのでエラーが出てtry文から抜けて例外処理へ, ZeroDivisionErrorでないelseは実行されないfinallyへ
エラーの文がつらつら
ジェネレータ
def reverse(string):
for i in range(len(string)-1,-1,-1):
yield string[i]
>>>for c in reverse('vocky')
print(c,end="")
ykcov
これはreverse('vocky')で
'vocky'[4]
'vocky'[3]
'vocky'[2]
'vocky'[1]
'vocky'[0]
の順でcに入るということ