見出し画像

Python3 自習・復習vol.009


やっと少しずつ note の使い方が分かってきました・・・。Python 学習以前の問題でした。こちらも少しずつ勉強して読みやすくしていこうと思います。

if, elif, else による比較

所持金が8,000円以上の場合、ディズニーランドへ行く。最初の条件に当てはまらない場合は、elif の条件の3,000円以上あれば映画館へ行く。どちらの条件にも当てはまらない場合は、残念ながらどこにも行けません!

money = 9000
if money >= 8000:
   print('ディズニーランドに行きます')
elif money >= 3000:
   print('映画館へ行きます')
else:
   print('どこにも行けません')

ディズニーランドに行きます
>>> 

While による反復処理

f, elif, else によるテストは上から下に進むが、同じことを2回以上繰り返す場合にループが必要になる。
Python で最も単純なループのメカニズムは while である。
下記は、1から5までの数値を表示する単純なループ。

count = 1
while count <= 5:
 print(count)
 count += 1

1
2
3
4
5
>>> 

count が6になってから最初の行に戻ると、count <= 5 が今度は False になり、while ループは終了し次の行に移動する。

break によるループ中止

何かが起きるまでループを続けたいが、それがいつ起きるかがはっきりわからない場合に、break 文を持つ無限ループが使える。次のコードは、Python の input() 関数を使ってキーボードから入力行を読み出し、最初の文字を大文字に変換して入力行を表示する。そして、q だけの行をよみこんだらループを終了する。

while True:
   stuff = input('string to capitalize [type q to quit]:')
   if stuff == 'q':
     break
     print(stuff.capitalize())

string to capitalize [type q to quit]:test
string to capitalize [type q to quit]:hey, it works
string to capitalize [type q to quit]:q
>>> 

continue による次のイテレーションの開始

なんらかの理由から、ループを抜け出してしまうのではなく、次のイテレーション(反復処理の1回分)を直ちに始めたいという場合がある。
下記は、整数を読み、その整数が奇数なら自乗し、偶数なら何もせず q でループを終了する。

while True:
 value = input('Integer, please [q to quit]:')
 if value == 'q': #終了 
   break
 number = int(value)
 if number % 2 == 0: #偶数 
   continue
 print(number, 'squared is ', number * number)

Integer, please [q to quit]:1
1 squared is  1
Integer, please [q to quit]:2
Integer, please [q to quit]:3
3 squared is  9
Integer, please [q to quit]:4
Integer, please [q to quit]:5
5 squared is  25
Integer, please [q to quit]:q
>>> 

else による break のチェック

while ループが正常終了したら(break せずに終了したら)、制御はオプションの else 節に渡される。何かをチェックするために while ループが終了したものの、探し物が見つからなかった時に実行される。

numbers = [1,3,5]
position = 0
while position < len(numbers):
 number = numbers[position]
 if number % 2 == 0:
   print('Found even number', number)
   break
 position += 1
else:
 print('No even number found')

No even number found

最後までお読みいただき、本当にありがとうございます。 明日も継続して学習のアウトプットを続けていきたいと思いますので、また覗きにきていただけると嬉しいです! 一緒に学べる仲間が増えると、もっと喜びます!笑 これからも宜しくお願い致しますm(__)m