int()Python的文字无效

Lui*_*rzi 3 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
Run Code Online (Sandbox Code Playgroud)

哪里

e=invalid literal for int(): "1"
Run Code Online (Sandbox Code Playgroud)

出于兼容性原因,我使用的是Python 2.4

Aar*_*lla 5

repr(val) 给 u'"1"'

这意味着你没有转换1,你正在尝试转换"1"(即字符串引用,1,引用).这不是有效的整数文字.

剥去报价:

int(val.strip('"'))
Run Code Online (Sandbox Code Playgroud)


Eug*_*gen 5

我已经尝试了所有上面的解决方案,但它只是不起作用。相反,对我来说它有效:

val = "15.1234"
int(float(str(val)))
Run Code Online (Sandbox Code Playgroud)

结果

>>15
Run Code Online (Sandbox Code Playgroud)