关于python:检查输入类型的规范方法是什么?

what is the canonical way to check the type of input?

本问题已经有最佳答案,请猛点这里访问。

我想通过使用检查屏幕上的输入类型

python types模块

我用type(2) is int表示整数。工作>工作>我用type("Vivek") is str作弦。工作>工作>但当我使用raw_input()进行输入时,我感到困惑。

1
2
3
import types

p = raw_input("Enter input")

如果我在console上输入类似"vivek"的字符串然后就可以了

问题是当intfloat进入

那么,检查输入是否为booleanint、char、stringlongbytedoublepython中的规范方法是什么呢?


这取决于你将你的输入转换成你需要的任何东西。

但是,你可以这样猜测:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import sys

p = raw_input("Enter input")

if p.lower() in ("true","yes","t","y"):
    p = True
elif p.lower() in ("false","no","f","n"):
    p = False
else:
    try:
        p = int(p)
    except ValueError:
        try:
            p = float(p)
        except ValueError:
            p = p.decode(sys.getfilesystemencoding()

支持boolintfloatunicode

笔记:

  • python没有char类型:使用长度为1的字符串,
  • 这个int函数可以解析int值,也可以解析long值,甚至可以解析很长的值。
  • python中的float类型具有double的精度(python中不存在)。

另请参见:将字符串解析为float或int