在下面的代码中,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")
答案 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'