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' 
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号