テーマ:「条件分岐」を使ったポイント計算を学ぶ
条件分岐によるポイント計算の学び

けんゆー
今回の学習では、購入金額や会員ステータスによって異なる処理を行う「条件分岐」をテーマにしました。実際にコードを書くことで、仕組みを少しずつ理解しながら、ポイント計算のような応用の方法も学ぶことができました。
問題
問題文の詳細
購入金額と会員ステータスによって、以下の条件でポイントを計算。
条件
- 購入金額の 1% を付与する。
- 会員ランクによるポイント倍率:「basic」1%、「premium」2%「gold」5%。
- 購入金額50,000円以上の場合、500ポイント追加。
与えられたデータ
# 利用するデータ1 total_price = 10000 user = {'user_id': 1, 'status': 'basic'} # 関数の呼び出し points = calculate_rewards(total_price, user) print('入力1:購入金額が10,000円で、会員ステータスがbasicの場合') print(points) # 出力例: 100 print('-----------------------------') # 利用するデータ2 total_price = 10000 user = {'user_id': 2, 'status': 'premium'} # 関数の呼び出し points = calculate_rewards(total_price, user) print('入力2:購入金額が10,000円で、会員ステータスがpremiumの場合') print(points) # 出力例: 300 print('-----------------------------') # 利用するデータ3 total_price = 10000 user = {'user_id': 3, 'status': 'gold'} # 関数の呼び出し points = calculate_rewards(total_price, user) print('入力3:購入金額が10,000円で、会員ステータスがgoldの場合') print(points) # 出力例: 600 print('-----------------------------') # 利用するデータ4 total_price = 50000 user = {'user_id': 3, 'status': 'gold'} # 関数の呼び出し points = calculate_rewards(total_price, user) print('入力4:購入金額が50,000円で、会員ステータスがgoldの場合') print(points) # 出力例: 3500
完成したコードの解説
必要なロジックとその詳細
# pythonコード def calculate_rewards(total_price,user): point_rate = 0.01 #基本のポイント付与率 points = total_price * point_rate if user['status'] == 'premium': points += total_price * 0.02 #プレミアム会員の付与率 if user['status'] == 'gold': points += total_price * 0.05 #ゴールド会員の付与率 if total_price >= 50000: points += 500 #特典ボーナス(50000円以上の購入) return round(points) #小数点以下を四捨五入して返す
出力結果(実際の出力結果)
出力例:
入力1:購入金額が10,000円で、会員ステータスがbasicの場合
100
—————————–
入力2:購入金額が10,000円で、会員ステータスがpremiumの場合
300
—————————–
入力3:購入金額が10,000円で、会員ステータスがgoldの場合
600
—————————–
入力4:購入金額が50,000円で、会員ステータスがgoldの場合
3500
入力1:購入金額が10,000円で、会員ステータスがbasicの場合
100
—————————–
入力2:購入金額が10,000円で、会員ステータスがpremiumの場合
300
—————————–
入力3:購入金額が10,000円で、会員ステータスがgoldの場合
600
—————————–
入力4:購入金額が50,000円で、会員ステータスがgoldの場合
3500
誤りやすい箇所と修正方法
誤り例
### 間違えたコード例 誤ったコード例: ```python # 間違った辞書アクセス if user('status') == 'premium': # 文法ミス、括弧の使用が不適切
修正方法
# 正しい辞書アクセス if user['status'] == 'premium': # 正しい文法を用いる
学びのまとめ
今回の学習を通じて、条件分岐を基にしたプログラム設計のポイントを以下のように学びました。
- 条件分岐の使い方
条件分岐によって、異なる入力データに対して柔軟な処理を実現できました。特に、if
文やelif
の使い方、条件式の整理が重要であることを学びました。 - データの扱い方
辞書型データを使うことで、会員ステータスや購入金額を効率的に管理しました。また、辞書の値にアクセスする正しい方法を確認しました(例:user['status']
)。 - 実務で応用できる知識
今回のポイント計算ロジックは、割引や料金計算などの実務でも活用できる仕組みです。また、柔軟な条件分岐による処理が、応用の幅を広げることを理解しました。
コメント