今回はフロー制御(if文とfor文)、関数定義、クロージャとラムダ式、ジェネレータ、リスト内表記 について説明していきます。
Pythonのフロー制御としてここではif文とfor文を紹介します。
その前にフロー制御の条件式を理解する際に必要となる比較演算子について説明します。
Pythonに限らずプログラム言語には比較演算子というものが存在します。以下に重要なものについて示します。
== #等しい
!= #等しくない
> #より大きい
>= #以上
< #未満
<= #以下
if 条件式:
条件式が成り立つときしたい処理内容
else if 条件式:
条件式が成り立つときしたい処理内容
else:
条件式が成り立つときしたい処理内容
for i in オブジェクト:
実行する内容
ここでは関数の定義について説明します。Pythonではdefを使って
独自の関数を定義することができます。例えば'こんにちは'と出力する関数say-hello()を作ってみたいと思います。
def say-hello():
print('こんにちは')
def add(a,b):
c = a+b
return c
def add(*args):
return args[0]+args[1]
ここでは関数についても少し詳しいことを取り扱っていきます。まずクロージャについてです。 クロージャは関数の中に関数を入れる仕組みのことです。
def outer(a,b):
def inner(c):
return c*(a+b)
retrun inner
C = (lambda a,b:2*a+3*b)(a,b)
data1 = [1,2,3,4]
data2 = [5,6,7,8]
result = list(map(lambda a,b:2*a+3*b,data1 data2))
引き続き関数について説明します。次はジェネレータというものです。ジェネレータは関数の中に "yield 処理内容"を複数書き、関数をnext関数で呼び出して1つずつ処理をしていく機能です。
def linestyle_generator():
linestyle = ["-","--","_",":"]
lineID = 0
while True
yield linestyle[lineID]
lineID = (lineID+1)%len(linestyle)
LS = linestyle_generator()
for i in range(5):
print(next(LS))
t = [1,2,3,4,5]
r1 = [i for i in t]
print r
#実行結果
r1 = [1,2,3,4,5]