[D]关于基本异常处理的疑惑?
s=input("enter an integer:")try: i=int(s) print("valid integer entered:",i)except ValueError as err: print(err)
>>> ================================ RESTART ================================>>> enter an integer:10.2('valid integer entered:', 10)>>>
[解决办法]
嗯,py3k的input结果是字符串,如果允许浮点数字串取整的话,试试int(float(s))...
[解决办法]
这样的疑问最好的解决办法是看文档。
Convert a string or number to a plain integer. If the argument is a string, it must contain a possibly signed decimal number representable as a Python integer, possibly embedded in whitespace. The base parameter gives the base for the conversion (which is 10 by default) and may be any integer in the range [2, 36], or zero. If base is zero, the proper radix is determined based on the contents of string; the interpretation is the same as for integer literals. (See Numeric literals.) If base is specified and x is not a string, TypeError is raised. Otherwise, the argument may be a plain or long integer or a floating point number. Conversion of floating point numbers to integers truncates (towards zero). If the argument is outside the integer range a long object will be returned instead. If no arguments are given, returns 0.
The integer type is described in Numeric Types — int, float, long, complex.