7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】文まとめ【try, del, assert, yield, raise, pass】

Posted at

はじめに

知っているようで全ては知らない,しかし使えると便利なPythonの「文(statement)」をまとめます.

#単純文と複合文
Pythonには二種類の「文」があります.

複合文(compound statement)

if文,while文,for文等の文中に他の文などを入れることができる文を複合文と呼びます.

example
n=3
if n==3:
    print('Yes')  # 複合文中ではインデントを下げる
else:
    print('No')

複合文にはif文などの他にも,class文,def文,with文,try文などがあります.今回は,複合文はtry文について扱います.

try (except)

「このコードを実行するとバグが起きるかもしれないから,バグが起きたときだけ例外として処理したい...」のような場合,try文とexcept文が便利です.使い方は以下の通りです.

how_to_use
try:
    例外が発生するかもしれないが実行したい処理
except 例外名:
    例外発生時に行う処理

ここの例外名とはTypeErrorZeroDivisionErrorを指します.
例外名一覧はPythonの公式ドキュメントをご参照ください.以下に具体例を示します.

example
x = 3
y = 0
 
try:
    z = x / y
except ZeroDivisionError:
    print('ZeroDivisionError!')

単純文(simple statement)

複合文と異なり一行で終わるような文を単純文と言います.有名な単純文にはimport文やbreak文,continue文などがあります.以下にいくつかのあまり有名ではない(個人差有り)単純文を解説します.

del

del文はオブジェクトを削除します.使い方と具体例を以下に示します.

how_to_use
del オブジェクト
example
n = 3
del n
print(n)  # エラー

assert

assert文は条件式がFalseのときに例外を返す文です.使い方と具体例を以下に示します.

how_to_use
assert 条件式
example
n1 = 1
n2 = 2
assert n1==n2 'Error'

return

return文は関数の処理を終了し,値を返す文です.使い方と具体例を以下に示します.

how_to_use
return オブジェクト
example
def test_func():
    return 'Hello!'

print(test_func)  # Hello!

yield

yield文はreturn文と同様に値を返しますが,関数の処理を一度止めるだけで終了させないのが特徴です.
また,yieldは基本的に関数内,それもfor文やwhile文内で使われ,ジェネレータを生成します.最近だと機械学習でミニバッチとしてデータをいくつか取り出すときに使われることもあるのではないでしょうか.使い方と具体例を以下に示します.

how_to_use
yield オブジェクト
example
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文は自作のエラーを発生させることができます.例外を意図的に発生させたい場合に使います.使い方と具体例を以下に示します.

how_to_use
raise 例外クラス(メッセージ):
example
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文が活躍します.具体例を以下に示します.

example
def f():
    pass

print(f())
# 何も表示されない

さいごに

閲覧ありがとうございました。間違い等があればご指摘いただけたら嬉しいです。

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?