是int(x)数字/非数字字符串?

时间:2016-07-16 19:34:56

标签: python type-conversion

在下面的代码中,int(x)会引发异常。我知道x应该是一个字符串,但是 - 数字或非数字字符串?

def temp_convert(var):
   try:
      return int(var)
   except ValueError, Argument:
      print "The argument does not contain numbers\n", Argument

# Call above function here.
temp_convert("xyz")

1 个答案:

答案 0 :(得分:1)

作为函数参数提供的字符串必须可以表示为整数。您认为"xyz"的数字表示是什么?

如果你传递数字的函数字符串表示,无论是正数还是负数,那么你就不会触发异常。

当数字编码为字符串时,没有问题,

>>> int("10")
10
>>> int("-10")
-10

当一个不容易用数字表示的符号被提供给函数时,异常将被触发,

>>> int("-10a")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '-10a'

int(x)也不接受浮点数:

>>> int("10.0")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '10.0'