如何在不使用int(x)的情况下将字符串转换为int

时间:2016-03-29 13:06:28

标签: python

还有其他方法将字符串转换为int吗?我需要这样做而不使用它:

x = '345'
y = int(x)

然后它应该像这样工作:

>>> function('456') + 5
461

2 个答案:

答案 0 :(得分:1)

def not_int(s):
    if s.isdigit():
        return eval(s)
    raise ValueError("invalid literal: %r" % (s,))

更新:如评论中所述,这仅适用于正整数。它可以与负面文字一起使用,但它没有任何设计,因为int确实存在!顺便说一下,这甚至不会处理10以外的基础。

以下效果更好,实际上并未使用int; - )

def not_int(s):
    return eval("int(%r)" % (s,))

答案 1 :(得分:1)

您可以使用eval,但int可以正常使用。

>>> eval('123') + 5
128