我正在尝试创建一个简单的成绩计划,其中提示用户输入小数等级并作为回报给出一个字母等级。它似乎没有用。当我放置一个类似.9的数字时,它给了我B.它给了我所有输入的B,当我用大于1的数字测试它时,它给了我“B A D C”。
try :
grade = raw_input("what is ur grade")
if grade > .8 < .9 :
print "B"
if grade > .9 < 1.0 :
print "A"
if grade > .6 < .7 :
print "D"
if grade > .7 < .8 :
print "C"
if grade < .6 :
print "F"
except :
if grade > 1.0 :
print "enter numeric value"
请帮助我理解......
答案 0 :(得分:2)
from bisect import bisect
def grade(score, breakpoints=[60, 70, 80, 90], grades='FDCBA'):
i = bisect(breakpoints, score)
return grades[i]
while True:
try:
grad = float(raw_input("what is ur grade")) *100
print grade(grad)
break
except:
print 'Enter Correct value'
您的代码说明:
grade = raw_input("what is ur grade")
此处您的grade
类型总是string
,您需要将其转换为float
if grade > .8 < .9
我认为你的成绩介于.8和.9之间
可以做到
if .8<grade<.9: