キーワード辞典
物凄く大雑把なPython

登録日 21/09/09   更新日 21/09/09



反復(forの考え方)

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()



range関数による反復

for文で、繰り返す回数や条件を指定する為によく使われるrange関数は、 実際は、規則に従って連続した数値のオブジェクト(リスト)を作る関数である。

print('range(10) = ', list(range(10)))
print('要素数 = ', len(range(10)))


for文は、range関数によって作られた数値のリストを変数に順繰りに代入する事により、処理をしている。 変数の値で終了判定をしている訳では無く、対象となる全ての要素を代入し処理を終えると、抜け出す。

よって、forの反復の中で変数の値を利用する事は出来るが、 変数の値自体を変更しても、forの行に戻って来た時点で変数にはオブジェクトの次の要素の値が代入されるか、 或いは次の要素が無ければ反復を終了する。
for i in range(10):
    if i % 3 == 0:
        i *= -1
    print(i, end='  ')
print()


range関数で作られる数値のリストの例

面倒臭いので、数値のリストを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)に解釈されるので、要素の無いリストになる。



以降、続きます。









[ 黒板消しとチョーク受けの画像 ]