python第一次上机遇到的困难

  正确 10 58 27412

2-1019 长度转换程序(10分)

完善下面的程序,能够:
(1) 将用户输入的公制长度单位(米、千米)转换成英制长度单位(英寸、英里);
(2) 将用户输入的英制长度单位(英寸、英里)转换成公制长度单位(米、千米);
(3) 将转换结果输出到屏幕上。
提示: 
长度单位:1 英寸=2.5400 厘米      1 英里 =1.6093 千米
这是老师的程序,在前面输入都是合法数值的时候能正确运行,请完善, 保证前面任意输入的情况下都能正确处理

length=raw_input()
if length[-4:] in ['Inch','INCH','inch']:
    l=eval(length[0:-4])*0.0254
    print 'The length is %fm' %l
elif length[-4:] in ['mile','Mile','MILE']:
    l=eval(length[0:-4])*1.6093
    print 'The length is %fkm' %l
elif length[-2:] in ['km','KM','Km']:
    l=eval(length[0:-2])/1.6093
    print 'The length is %fmile' %l
elif length[-1] in ['m','M']:
    l=eval(length[0:-1])/0.0254
    print 'The length is %finch' %l
else:
print 'Error'

输入格式:

输入数量及单位,例如:1inch

或者输入一串非法字符串,例如:111asdkfljlka123156sdinch

输出格式:

输出提示及结果,例如:The length is 0.025400m,注意小数位数和空格的位置

如果遇到非法字符串,则输出:Error

主要是判断非法字符

length=raw_input()
if length[-4:] in ['Inch','INCH','inch']:
    if(length[0:-4].isdigit()==True):
        l=eval(length[0:-4])*0.0254
        print 'The length is %fm' %l
    else:
        print'Error'
elif length[-4:] in ['mile','Mile','MILE']:
    if(length[0:-4].isdigit()==True):
        l=eval(length[0:-4])*1.6093
        print 'The length is %fkm' %l
    else:
        print'Error' 
elif length[-2:] in ['km','KM','Km']:
    if(length[0:-2].isdigit()==True):
        l=eval(length[0:-2])/1.6093
        print 'The length is %fmile' %l
    else:
        print'Error'
elif length[-1] in ['m','M']:
    if(length[0:-1].isdigit()==True):
        l=eval(length[0:-1])/0.0254
        print 'The length is %finch' %l
    else:
        print'error'
else:
    print 'Error'

上一篇:Caused by: java.lang.ClassNotFoundException: org.jboss.logging.BasicLogger


下一篇:内核运行时数据结构的操作(启用路由功能),sysctl内核设置命令