Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python布尔比较_Python_Boolean_Boolean Logic_Boolean Expression - Fatal编程技术网

Python布尔比较

Python布尔比较,python,boolean,boolean-logic,boolean-expression,Python,Boolean,Boolean Logic,Boolean Expression,我正在测试Python的布尔表达式。当我运行以下代码时: x = 3 print type(x) print (x is int) print (x is not int) 我得到以下结果: <type 'int'> False True 假的 真的 为什么(x是int)返回false而(x不是int)返回true,而x显然是整数类型?最好的方法是使用isinstance() 因此,在你的情况下: x = 3 print isinstance(x, int) 关于pytho

我正在测试Python的布尔表达式。当我运行以下代码时:

x = 3
print type(x)
print (x is int)
print (x is not int)
我得到以下结果:

<type 'int'>
False
True

假的
真的

为什么(x是int)返回false而(x不是int)返回true,而x显然是整数类型?

最好的方法是使用
isinstance()

因此,在你的情况下:

x = 3
print isinstance(x, int)
关于python
is

运算符
不为
测试对象标识:x为y为真 当且仅当x和y是同一对象


摘自

如果要使用is,应执行以下操作:

>>> print (type(x) is int)
True

尝试将这些输入到您的解释器中:

type(x)
int
x is 3
x is not 3
type(x) is int
type(x) is not int
x是int
的原因是它询问数字
3
和Python int类是否代表同一个对象。很明显,这是错误的


作为旁注,如果您不确切知道Python的
is
关键字在做什么,那么Python的
关键字可能会以一些意想不到的方式工作,如果您曾经测试过等式,那么您几乎肯定应该避免使用它。这就是说,在实际程序之外尝试它是一个非常好的主意。

int
是一个类。如果只键入
int
,则会得到
is
比较引用。您需要
isinstance(x,int)
Python不是英语。
is
运算符做了一些非常具体的事情,这似乎与您所期望的不同。
is
不是布尔运算符,它是一个标识运算符查看此问题了解更多详细信息:感谢大家帮助我理解Python的“is”运算符。我曾读到,“is”可用于检查标识符是否属于特定类型。感谢您的程序员为我展示了正确的语法。