会員ランク判定
初段 / 目安 20分
松田さんが景品カタログを広げています。「ポイントでランクを分けたいんだ。1000以上でゴールド、500以上でシルバー、それ未満はブロンズ。うちはこの3つでいく」。
気をつけるところが1つあります。ちょうど1000ポイントの人はゴールドです。ちょうど500ポイントの人はシルバーです。「以上」は、その数を含みます。
完成条件
保有ポイントを受け取ってランク名を返す関数 get_rank(points) を作ってください。
- 1000以上なら
"ゴールド" - 500以上1000未満なら
"シルバー" - 500未満なら
"ブロンズ" - 返すのは文字列。
returnで返すこと
分岐の書き方
別の題材として、荷物の重さから配送方法を選びます。
Python
def delivery(weight):
if weight >= 20:
return "大型便"
elif weight >= 5:
return "通常便"
else:
return "小包">= は「以上」、< は「未満」、== は「等しいか」を調べます。比較の結果は真の True か偽の False です。if から上の順に調べ、真になった枝だけを実行します。elif は前の条件が偽だったときの次の条件、else はどれにも当たらない場合です。条件の行末にはコロンを書き、枝の中はさらに空白4文字で字下げします。return は値を返して関数を終えるので、delivery(20) は「大型便」になります。
進め方
ひな形の「ここに書く」を完成させてください。pass は何もしない仮の行です。その行を自分の処理に置き換えます。準備済みのコードはそのまま使えます。手が止まったら、①方針、②使う構文、③部分解の順にヒントを開けます。
数分考えて手が止まったら、①から確認してください。本文の別の題材の例を動かし、今回の値に置き換えて考えましょう。
上から順に判定していくと、条件はそれぞれ短く書けます。逆に小さいほうから判定すると、条件が重なって面倒になります。
要件
- 関数名は get_rank、引数は points の1つ
- 1000以上なら「ゴールド」を返すこと
- 500以上1000未満なら「シルバー」を返すこと
- 500未満なら「ブロンズ」を返すこと
- print ではなく return で文字列を返すこと
ヒント
前のヒントを開くと次が開きます。開かずに解けると未開封クリアです
ヒント 2ヒント 1 を開くと読めます
ヒント 3ヒント 2 を開くと読めます
編集 ゆめさく編集部