Pythonには、反復の制御として、forとwhileの2つが有る。 forは繰り返す回数が判っている場合に、 whileは回数では無い条件によって終了させたい場合に、使用する。
Pythonのfor文は、以下の形で行われる。
for 変数 in オブジェクト:
処理
このオブジェクトは要素の集まりであり、変数には各々の要素を最後まで順繰りに代入され、処理が行われる。
繰り返す回数を決めるのは処理をする要素の数であり、変数の値では無い。
要素の値が数値である必要も無い。カウンタという意識も無い。
この考え方はオブジェクトの要素の数を意識しなくとも処理が出来る為に、
近年のオブジェクト指向なプログラム言語に採用されつつある。
for c in ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']: print(c, end=' ') print()
eto = ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥'] for c in eto: print(c, end=' ') print()
eto = ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥'] for c in eto[0:6]: print(c, end=' ') print()
for文で、繰り返す回数や条件を指定する為によく使われるrange関数は、
実際は、規則に従って連続した数値のオブジェクト(リスト)を作る関数である。
print('range(10) = ', list(range(10))) print('要素数 = ', len(range(10)))
for i in range(10): if i % 3 == 0: i *= -1 print(i, end=' ') print()
面倒臭いので、数値のリストをaという変数にした。
a = range(10) print('range(10) = ', list(a)) print('要素数 = ', len(a)) print() a = range(0,10,1) print('range(0,10,1) = ', list(a)) print('要素数 = ', len(a)) print() a = range(1,11,1) print('range(1,11,1) = ', list(a)) print('要素数 = ', len(a)) print() a = range(1,11,2) print('range(1,11,2) = ', list(a)) print('要素数 = ', len(a)) print() a = range(10,0,-1) print('range(10,0,-1) = ', list(a)) print('要素数 = ', len(a)) print() a = range(10,0,-2) print('range(10,0,-2) = ', list(a)) print('要素数 = ', len(a)) print() a = range(0,-10,-1) print('range(0,-10,-1) = ', list(a)) print('要素数 = ', len(a)) print() a = range(-10) print('range(-10) = ', list(a)) print('要素数 = ', len(a)) print()最後のrange(-10)は、range(0,-10,1)に解釈されるので、要素の無いリストになる。