我的代码在Python中没有正确执行

时间:2014-06-25 05:12:58

标签: python

我正在尝试创建一个简单的成绩计划,其中提示用户输入小数等级并作为回报给出一个字母等级。它似乎没有用。当我放置一个类似.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"

请帮助我理解......

1 个答案:

答案 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: