[解決済み] Pythonです。成績評価システム電卓に「最終成績」コンバータを追加するには?
2022-03-02 09:47:26
質問
なんとなくのイメージはあるのですが、うまくいきません。プログラムは、生徒の名前と3つのテストの点数を取得し、3つの点数のうち平均点(パーセント)を取得することができる必要があります。その後、点数(割合)を成績に変換する必要があります。
EDIT グレードの真ん中のスペースと"%"を削除するにはどうしたらよいでしょうか?
- Enter"キーを押してください。
- 名前を入力してください。ジョーダン・シンプソン
- 最初のテストのスコア:67
- 2回目のテストの得点:78
- 第3回テストスコア:89
- 最終的なレターグレード C+
- ジョーダン・シンプソンのテストスコアは 78.0 %
- プログラムを再開しますか?
成績評価基準。
input ('Please press "Enter" to begin')
while True:
import math
studentName = str(input('Enter your Name: '))
firstScore = int(float(input('First test score: ').replace('%', '')))
secondScore = int(float(input('Second test score: ').replace('%', '')))
thirdScore = int(float(input('Third test score: ').replace('%', '')))
scoreAvg = (firstScore + secondScore + thirdScore) / 3
def grade():
if scoreAvg >= 93 and <= 100:
return 'A'
if scoreAvg <= 92.9 and >= 89:
return 'A-'
if scoreAvg <= 88.9 and >= 87:
return 'B+'
if scoreAvg <= 86.9 and >= 83:
return 'B'
if scoreAvg <= 82.9 and >= 79:
return 'B-'
if scoreAvg <= 78.9 and >= 77:
return 'C+'
if scoreAvg <= 76.9 and >= 73:
return 'C'
if scoreAvg <= 72.9 and >= 69:
return 'C-'
if scoreAvg <= 68.9 and >= 67:
return 'D+'
if scoreAvg <= 66.9 and >= 60:
return 'D'
return 'F'
print(grade(scoreAvg))
print(studentName, "test score is: ",scoreAvg,'%')
endProgram = input ('Do you want to restart the program?')
if endProgram in ('no', 'No', 'NO', 'false', 'False', 'FALSE'):
break
解決方法は?
ご質問の意味がよくわからないのですが、レターグレードを取得するための、より簡潔な方法をご紹介します。
>>> scores = [93, 89, 87, 83, 79, 77, 73, 69, 67, 60, 0]
>>> grades = ['A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'F']
>>>
>>> def gradeFor(s):
... grade_scores = zip(scores, grades)
... for score, grade in grade_scores:
... if s >= score:
... return grade
>>> gradeFor(87)
B+
>>> gradeFor(89)
A-
>>> gradeFor(88)
B+
>>> gradeFor(67)
D+
>>> gradeFor(72)
C-
>>> gradeFor(40)
F
また、以下のようなことも可能です。
if endProgram.lower() in ('no', 'false'):
関連
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] Pythonで文字列を小文字にするには?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python string splicing.join()とsplitting.split()の説明
-
Python入門 openを使ったファイルの読み書きの方法
-
PythonによるExcelファイルの一括操作の説明
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み】ValueError: xとyは同じサイズでなければならない