我刚刚为正在从事的这个项目学习了Python,但是在比较两个值时遇到了麻烦-我正在使用Python xlwt和xlrd库并从文档中提取单元格的值。问题是某些值的格式为'NP_000000000','IPI00000000.0'和'000000000',因此我需要检查值的格式,然后在比较它们之前除去字符和小数点(如有必要) 。我尝试使用S1[:3]来获取不带字母字符的值,但出现“浮点不可下标”错误然后我尝试这样做,re.sub(r'[^\d.]+, '', S1)但出现了Typerror:预期为字符串或缓冲区我认为由于通过返回的单元格的值sheet.cell( x, y).value将是一个字符串,因为它是字母数字,但似乎必须以浮点数形式返回格式化这些值然后进行比较的最佳方法是什么?
2 回答

九州编程
TA贡献1785条经验 获得超4个赞
听起来您正在使用的API会根据单元格的内容返回不同的类型。您有两个选择。
您可以将所有内容转换为字符串,然后执行当前操作:
s = str(S1)...
您可以检查输入的类型并采取适当的措施:
如果isinstance(S1,basestring):#这是一个字符串,去掉前缀elif isinstance(S1,float):#这是一个浮点,只需使用它
添加回答
举报
0/150
提交
取消