はじめに
知っているようで全ては知らない,しかし使えると便利なPythonの「文(statement)」をまとめます.
#単純文と複合文
Pythonには二種類の「文」があります.
複合文(compound statement)
if
文,while
文,for
文等の文中に他の文などを入れることができる文を複合文と呼びます.
n=3
if n==3:
print('Yes') # 複合文中ではインデントを下げる
else:
print('No')
複合文にはif
文などの他にも,class
文,def
文,with
文,try
文などがあります.今回は,複合文はtry
文について扱います.
try (except)
「このコードを実行するとバグが起きるかもしれないから,バグが起きたときだけ例外として処理したい...」のような場合,try
文とexcept
文が便利です.使い方は以下の通りです.
try:
例外が発生するかもしれないが実行したい処理
except 例外名:
例外発生時に行う処理
ここの例外名
とはTypeError
やZeroDivisionError
を指します.
例外名一覧はPythonの公式ドキュメントをご参照ください.以下に具体例を示します.
x = 3
y = 0
try:
z = x / y
except ZeroDivisionError:
print('ZeroDivisionError!')
単純文(simple statement)
複合文と異なり一行で終わるような文を単純文と言います.有名な単純文にはimport
文やbreak
文,continue
文などがあります.以下にいくつかのあまり有名ではない(個人差有り)単純文を解説します.
del
del文はオブジェクトを削除します.使い方と具体例を以下に示します.
del オブジェクト
n = 3
del n
print(n) # エラー
assert
assert
文は条件式がFalseのときに例外を返す文です.使い方と具体例を以下に示します.
assert 条件式
n1 = 1
n2 = 2
assert n1==n2 'Error'
return
return
文は関数の処理を終了し,値を返す文です.使い方と具体例を以下に示します.
return オブジェクト
def test_func():
return 'Hello!'
print(test_func) # Hello!
yield
yield
文はreturn
文と同様に値を返しますが,関数の処理を一度止めるだけで終了させないのが特徴です.
また,yield
は基本的に関数内,それもfor
文やwhile
文内で使われ,ジェネレータを生成します.最近だと機械学習でミニバッチとしてデータをいくつか取り出すときに使われることもあるのではないでしょうか.使い方と具体例を以下に示します.
yield オブジェクト
def return_test():
return 'return_1'
return 'return_2'
def yield_test():
yield 'yield_1'
yield 'yield_2'
print(return_test())
# return_1
print(yield_test())
# <generator object yield_test at 0x10716cbd0>
for item in yield_test():
print(item)
# yield_1
# yield_2
raise
raise
文は自作のエラーを発生させることができます.例外を意図的に発生させたい場合に使います.使い方と具体例を以下に示します.
raise 例外クラス(メッセージ):
def raise_test(num):
if type(num)!=int:
raise TypeError('エラー')
return num * 10
print(raise_test(10))
# 100
print(raise_test('a'))
# TypeError: エラー
pass
pass文は何もしません.何もしない関数が必要な場合や,後で機能を追加するためにとりあえず関数の形だけ必要な場合はpass
文が活躍します.具体例を以下に示します.
def f():
pass
print(f())
# 何も表示されない
さいごに
閲覧ありがとうございました。間違い等があればご指摘いただけたら嬉しいです。