标准类型操作符的一个小试题请教

标准类型操作符的一个小试题请教

写一段脚本,输入一个测验成绩,根据下面的标分辩率,输出他的评分成绩(A-F).
A:90~100
B:80~89
C:70~79
D:60~69
F:<60

[Copy to clipboard] [ - ]
CODE:
#! /usr/bin/env python
#-*-coding=gbk
task=raw_input('input you test:')
try:
        if task >=90 and task<= 100:
                print ' A %s'%task
        elif task>=80 and task <=89:
                print 'B %s'%task
        elif task >=70 and task <=79:
                print 'C %s'%task
        elif task >=60 and task <=69:
                print 'D %s'%task
        elif task <60:
                print 'F %s'%task
except ioError,e:
        print 'ERROR, %s'%e

为何输入就退出了,而不执行 print

当我改为下面代码就正常,有谁能详细说明原因,另外希望大伙能提供更简洁的代码,让程序性能更加高,

[Copy to clipboard] [ - ]
CODE:
#! /usr/bin/env python
#-*-coding=gbk
import math
task=float(raw_input('input you test:'))
try:
        if task >=90 and task<= 100:
                print ' A %s'%task
        elif task>=80 and task <=89:
                print 'B %s'%task
        elif task >=70 and task <=79:
                print 'C %s'%task
        elif task >=60 and task <=69:
                print 'D %s'%task
        elif task <60:
                print 'F %s'%task
except ioError,e:
        print 'ERROR, %s'%e

??
raw_input 输入是返回字符串的,所以不会进入你的if...elsif循环
你可以测试下面的代码就知道了

task=raw_input('input you test:')
try:
    if task >=90 and task<= 100:
        print ' A %s'%task
    elif task>=80 and task <=89:
        print 'B %s'%task
    elif task >=70 and task <=79:
        print 'C %s'%task
    elif task >=60 and task <=69:
        print 'D %s'%task
    elif task <60:
        print 'F %s'%task
    else:
        print 'aaaaaaaaaa'
except ioError,e:
    print 'ERROR, %s'%e

task=int(raw_input('input you test:'))也行,只要转成int或者float格式就ok



QUOTE:
原帖由 caesarok 于 2009-2-16 09:34 发表
写一段脚本,输入一个测验成绩,根据下面的标分辩率,输出他的评分成绩(A-F).
A:90~100
B:80~89
C:70~79
D:60~69
F:=90 and task=80 and task =70 and task =60 and task  

try:
    task=float(raw_input('input you test:'))
except ValueError:
    print 'ERROR,ValueError'
if task >=90 and task<= 100:
    print ' A %s'%task
elif task>=80 and task <=89:
    print 'B %s'%task
elif task >=70 and task <=79:
    print 'C %s'%task
elif task >=60 and task <=69:
    print 'D %s'%task
elif task <60:
    print 'F %s'%task

这样就可以打印了我只是简单的修改没有加入其他的因为你没要求其他的比如循环结果之类的。
你的错误有2个 一是缩进错误
二是 try的位置没放对
还有就是上面的raw_input没有设置输入为float
喔,谢谢!