【发布时间】:2020-02-06 10:34:34
【问题描述】:
我想制作一个需要检查用户输入的程序 所以,问题是如何检查输入值,是字符串还是整数?
以下是一些无效的实验代码:
a = 10
print(type(a))
if (a==10):
print("aaaaa")
else:
if(type(a)== "<class 'int'>"):
print("12345")
【问题讨论】:
-
如果您想检查用户输入,这将无济于事。无论用户键入
123还是abc,您仍然会得到一个表示他们键入的字符序列的字符串,而不是一个表示该字符序列的数值的int,它被解释为整数的基数10 表示。跨度> -
好的,那我该如何检查呢?
-
type(a) == int或isinstance(a, int)。如果它来自输入,这意味着a是str,并且您想检查a是否是类似int 的str,您可以执行a.isdigit()。 -
@SeakyLone:
isdigit是错误的测试。它测试数字字符,而不是表示数字的字符串。例如,'-1'.isdigit()是False。 -
@user2357112 你是对的。也许我应该说这个
a[1:].isdigit() if a[0]=='-' else a.isdigit()。但如果没有询问者的进一步确认,int 检查很难给出准确的答案。
标签: python python-3.x