int()Python的文字无效

时间:2013-09-27 08:04:33

标签: python string int

我在Python中获得int()的无效文字,但它真的很奇怪,因为文字是“1”。当然,如果我尝试使用IPython int(“1”)或int(u“1”),我没有错误,但在我自己的代码中,相同的指令会出错。

        try:
            VimsLog().debug("val = %s" % val)
            int(val)
        except Exception, e:
            VimsLog().debug(e)
            VimsLog().debug("I am died")
            return val

其中

e=invalid literal for int(): "1"

出于兼容性原因,我正在使用Python 2.4

2 个答案:

答案 0 :(得分:5)

  

repr(val)提供u'"1"'

这意味着您没有转换1,而是尝试转换"1"(即字符串引号,1,引用)。这不是一个有效的整数文字。

删除引号:

int(val.strip('"'))

答案 1 :(得分:4)

我已尝试过所有上层解决方案,但它只是不起作用。 相反,对我而言,它起作用了:

val = "15.1234"
int(float(str(val)))

结果

>>15