str.format()メソッドでTypeError: descriptor 'format' requires a 'str' object but received a 'int'のエラーが出る


Python初心者です  
Pythonを勉強中なのですが  
点数を入力して点数に応じた評価を返すという簡単なプログラムを作成しました  
現在数値以外の入力は今は考えないものとしています

int型の変数をstr.format()メソッドを使って  
文字列としてint型の変数をprint()メソッドで出力しようとしたのですが以下のエラーが出ます  
TypeError: descriptor 'format' requires a 'str' object but received a 'int'

少しプログラムを修正すると一応動くようにはなったのですが  
調べてもエラーの意味や、どういう違いで動かなかったのかということが  
具体的に理解できておらず、教えていただきたいです

環境はPython3.7.1になります

よろしくお願いいたします

動くプログラム

[code]

    evaluation = "NULL"
    i = input("点数を入力:")
    score = int(i)
    
    if score>=0 and score<=59:
        evaluation = "F"
    elif score>=60 and score<=69:
        evaluation = "C"
    elif score>=70 and score<=79:
        evaluation = "B"
    elif score>=80 and score<=89:
        evaluation = "A"
    elif score>=90 and score<=100:
        evaluation = "S"
    
    if evaluation != "NULL":
        print(str.format(i) + "点の評価は" + evaluation + "です")
    else:
        print("エラー:0~100までの数値を入力してください。")
    
[/code]

問題の動かないプログラム

[code]

    evaluation = "NULL"
    score = int(input("点数を入力:"))
    
    if score>=0 and score<=59:
        evaluation = "F"
    elif score>=60 and score<=69:
        evaluation = "C"
    elif score>=70 and score<=79:
        evaluation = "B"
    elif score>=80 and score<=89:
        evaluation = "A"
    elif score>=90 and score<=100:
        evaluation = "S"
    
    if evaluation != "NULL":
        print(str.format(score) + "点の評価は" + evaluation + "です")
    else:
        print("エラー:0~100までの数値を入力してください。")
    
[/code]




[str.format()](https://docs.python.jp/3/library/stdtypes.html#str.format)
は、通常は`str`の部分に書式文字列を指定します。

[code]

    print("{}点の評価は{}です".format(score, evaluation))
    
[/code]

`str.format(score)` と書いた場合は最初の引数が書式文字列と解釈されます。

[code]

    print(str.fomat("{}点の評価は{}です", score, evaluation))
    
[/code]

うまくいくコードでは変数`i`が書式文字列としてパーズされて、結果そのまま返されています。




[str.format()](https://docs.python.jp/3/library/stdtypes.html#str.format)
は、通常は`str`の部分に書式文字列を指定します。

[code]

    print("{}点の評価は{}です".format(score, evaluation))
    
[/code]

`str.format(score)` と書いた場合は最初の引数が書式文字列と解釈されます。

[code]

    print(str.fomat("{}点の評価は{}です", score, evaluation))
    
[/code]

うまくいくコードでは変数`i`が書式文字列としてパーズされて、結果そのまま返されています。

