見出し画像

#33 くじ引き2

● 問題

10で大当たり,9~7で中当たり,6~3で小当たり,3未満ではずれになるようにします。
正しい判定ができていません。

import random
# omikuji = random.randint(1, 10)
omikuji = 4
if omikuji == 10:
    print('大当たり')
if omikuji > 6:
    print('中当たり')
if omikuji > 2:
    print('小当たり')
else:
    print('はずれ')

● 解答

中当たりと小当たりが同時に表示されます。
omikuji = 7 のとき,if omikuji > 6 と if omikuji > 2 のどちらも満たしてしまうからです。if ではなく,elif を使います。

判定が正しく行われているかを確認するためには,print関数の利用だけでなく,変数omikujiに定数を使うとよい方法です。
# omikuji = random.randint(1, 10) のように文の先頭に # をつけると,コメントとして認識されて,実行されません。

1~10までのすべての数について調べる必要はありません。判定の境となる値について確認します。
例えば,9~7で中当たりなので,9と7は調べますが,8は調べる必要はありません。 

import random
# omikuji = random.randint(1, 10)
omikuji = 7
if omikuji == 10:
    print('大当たり')
elif omikuji > 6:
    print('中当たり')
elif omikuji > 2:
    print('小当たり')
else:
    print('はずれ')
print(str(omikuji))
中当たり
7

#Python  #プログラミング

この記事が気に入ったらサポートをしてみませんか?