辞書を作成して、ある受験番号を与えたときに結果を表示させるプログラムを課題でやっています。


【問題文】  
ある受験番号 num を与えた時に、以下の結果を表示させるプログラムを作成しなさい。num
の値を変更し（例えば、“A01”、“A02”、“A07”など）、プログラムの動作確認を行いなさい。

  * 受験しており試験の点数が 60 点以上の場合は、「合格」と表示させる
  * 受験しており試験の点数が 60 点未満の場合は、「不合格」と表示させる
  * 受験していない場合は、「未受験」と表示させる

以上3つの条件を満たしたものを作っています。  
最後まで自分でやってみたのですが、行き詰ってしまっています。

[code]

    result = {"A01":50, "A03":80, "A04":100, "A05":20, "A07":60}
    
    num = 'A03'
    
    if num in result:
         print("合格")
    elif  0 <= num < 60:
        print("不合格")
    else:
        print("未受験")
    
[/code]

A01までは条件通りの評価が表示されるのですが、それ以降は `TypeError: '<=' not supported between instances
of 'int' and 'str'` というエラーになってしまいます。  
どこが間違いでどういう訂正をしたらいいのか教えていただきたいです。

追記：もう少し詳しく情報がわかるように編集しました！  
教えていただくというのに申し訳ないです…。よろしくおねがいします！




おそらく、受験番号と点数を混同されているのではないでしょうか。

変数 `num` について、`num = 'A03'` という代入をしているように、`num` には受験番号の文字列 `'A03'`
が入っています。点数は入っていません。今回出ているエラーは「`<=` っていうから数値かと思ったら、文字列だからできないよ」というもので、実際 `num`
は文字列なので `0 <= num` という比較はできません。

点数を知るためには辞書 `result` からもらってこなければいけません。たとえば `'A03'` の点数は `result['A03']`
と書くと取得できます。

* * *

ところで、今の条件分岐のやり方だと受験番号と点数の混同を直しても上手く動きません。今のままだと `result`
に点数が格納されているだけで「合格」が出力されてしまいます。if 文がどのように動くのかよく確認してみてください。

