Python错误SyntaxError: unexpected EOF while parsing.

分离数字和单位的位置不对,你可以用 python 交互式命令行,执行下面的代码验证下:

  • l="1235dm"
  • l[-1] 
  • l[-2:]
  • l[0:-1]
  • l[0:-2]

一些简单的python代码,就可以验证你对python数组下标对使用是否对。

代码中字符串切片错误,Lenght[-1]取最后一个字符,因而第一条件不满足,转而执行elif,这时条件满足了但是截取字串的[0:-1],即获取除最后一个字符外的子串,这个是带字母的子串,eval函数解析不了,因而报错。示例一个分米、厘米转换为米的代码片断给你参考。

for lth in ['1265dm', '1265Dm', '1265m', '1265CM']:
    lt = lth.lower()
    if 'd' in lt[-2]:
        M = int(lth[:-2])/10
        print(f'{M}m')
    elif 'c' in lt[-2]:
        M = int(lth[:-2])/100
        print(f'{M}m')
    else:
        print(lt)