#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 #プログラミング
この記事が気に入ったらサポートをしてみませんか?