以下のサイト参考に、コンピューターが数字を当てるというゲームをつくりました。
Pythonで「数あてゲーム」の逆(コンピュータが数をあてる)のゲームの作り方
実装したコード
lower, upper = 0, 100
num = int(input("数字を入力してください"))
assert lower <= num <= upper, f"[{lower}, {upper}] の範囲の整数を入力してください"
while True:
pred = (lower + upper) // 2
ret = input(f"正解は{pred}ですか? y: はい, l: {pred}より小さい h: {pred}より大きい").lower()
assert ret in ["y", "l", "h"]
if ret == "y":
break
elif ret == "l":
upper = pred
else:
lower = pred
8
assert ret in ["y", "l", "h"]
内容:y,l,h以外が入力されたらエラーが検知されるようにする
ポイント:assert文の使い方
活用:
・assertionの活用
def apply_discount(product, discount):
price = int(product['price'] * (1.0 - discount))
assert 0 <= price <= product['price']
return price
shoes = {'name': 'Fancy Shoes', 'price': 14900}
apply_discount(shoes, 0.25)
内容:割引セールをしたときに、割引後に価格が0を下回らないようにする。
まとめ
assertion文を初めて知った。金額がマイナスになったりしたら、大変だから、ネットショップのシステムにはassertion、もしくはそれと同様のコードが実装されているんだろうなと思う。文字を表示する、動きを見せるといった外側のコードも重要だが、正確性を担保するという内側のコードも同時に学ばないといけないと感じた。