我认为您有两种选择:
- 只需尝试将其转换为
int
,但要捕获异常:try:value = int(value)
except ValueError:
pass # it was a string, not an int.
这是“求饶”方法。
- 明确测试字符串中是否只有数字:
value.isdigit()
str.isdigit()收益
True只有在字符串中的所有字符是数字(
0-
9)。
的
unipre/
Python的3
str型当量
unipre.isdecimal()/
str.isdecimal();
只能将Unipre小数转换为整数,因为并非所有数字都具有实际的整数值(例如,U + 00B2 SUPERscript
2是数字,但不是小数)。
这通常称为“询问权限”方法,或“先了解后跳跃”。
后者将不会检测到所有有效值
int()(如和),
+并且
-在
int()值中也允许使用。第一种形式会很乐意接受
' +10'为数字,而后者则不会。
如果您希望用户 正常 输入整数,请使用第一种形式。在这种情况下,寻求宽恕比获得许可要容易(并且更快)。



