SWELL公式サイトへ 詳しくはこちら

1.5 Python 条件と再帰

  • URLをコピーしました!
目次

1.5.1 剰余演算子

2つの正の整数である、被除数 a および 除数 n が与えられた場合、a の n による剰余(a modulo n、略して a mod n とも表記される)は、ユークリッド除法における a を n で除算した余りである。

Pythonでは%を用いる。

m = 10 % 5
print(f'余りは:{m}')

出力:余りは:0

使用例としては、被除数が除数で割り切れるかどうか。また、被除数の一桁目や下何桁を求める場合など。

例えば、a % 10, a % 1000などなど。

1.5.2 ブール・比較演算子

>>>100 == 100
True
>>>100 == 99
False

TrueとFalseはbool型で特別な値であり、文字列とは違います。

演算子 ==は比較演算子の一つで、他にもあります。

x !=  yxとyは等しくない
x  > yxはyより大きい
x < yxはyより小さい
x >= yxはy以上
x <= yxはy以下

1.5.3 論理演算子

論理演算子は、and, or, not などです。

例えば、( x > 0 ) and ( x < 100 )であれば、xが0より大きくて、かつ100より小さいときに真となる。

( x % 10 == 0 ) or ( x % 100 == 0 )の場合、xを10で割った余りが0かxを100で割った余りが0、どちらかの条件が満たされると真となる。

not ( x > 0 )は、xが0か0より小さい場合に真となる。x > 0が偽のときに真になります。ちょっと認識がずれるところです。

1.5.4 条件処理

プログラムを有効に活用するためには、条件によってプログラムの挙動を制御する必要があります。

条件文はプログラムの挙動を制御する機能です。

if x > 0:
	print(f'xの値は{x}で正の整数です。')

上記、if文の後の x >0 が条件文です。条件文が真であれば、インデントされた命令文が実行されます。ここでは、print文です。条件文が偽であれば、スルーされ実行されません。

1.5.5 再帰処理

再帰処理とは、プログラミングにおいて、あるプロシージャの処理内部で再びそのプロシージャ自身を呼び出すような処理を指します。 関数等のプロシージャ中で自身を呼び出すことで、類似の処理を繰り返すことが可能となります。

def countdown(n):
    if n == 0:
        print('Ignition!')
    else:
        print(n)
        countdown(n-1)  #再帰的な関数呼び出し

countdown(10)  #関数呼び出し

上記例では、最下行のcountdown()関数で引数10を渡して呼び出しています。

countdown()関数では、引数10を受けて、if文の条件を確認し、引数が0になるまでelseに属する命令文を実行します。

else内では、countdown()関数を再帰的に呼び出し、さらに元の引数をー1しています。引数が0になるまでcouontdown()関数を呼び出し続けることでカウントダウンがきれいに決まります。再帰処理により、ループと同様の効果が生まれています。

よかったらシェアしてね!
  • URLをコピーしました!
目次