【发布时间】:2011-10-06 17:37:25
【问题描述】:
我是这里的新成员,也是 python 的新手。我的问题如下,这样的一行是否有效?
if x or y is 'whatever':
我在解释器中对此进行了测试,得到的结果不一致。这条线似乎产生了更一致和预期的结果
if (x or y) is 'whatever':
还是最好明确地把所有东西都这样布置
if x is 'whatever' or y is 'whatever':
最后一个总是有效的,但我只是想让我的代码更简洁一些,同时仍然遵循最佳实践。我尝试进行搜索以免提出多余的问题,但搜索“是”、“或”和“和”相当困难。提前感谢您的任何帮助。
编辑:感谢大家的快速回复。当我需要“或”时,这对我来说非常有用
if 'whatever' in [x,y]:
但是如果我需要一个“和”,我将如何压缩它?
if x == 'whatever' and y == 'whatever':
【问题讨论】:
-
最后一个问题,答案是
if x==y=='whatever' -
表示:内存中有一个字符串对象,其值为'whatever',引用指向的对象名称为x,指向的对象通过名称为 y 的引用是相同的值“whatever”对象。 x 和 y 是标识符,也就是说字符串是变量的名称,其性质是指针,这些指针指向对象 x 和 y。 Python的数据模型是:x标识符,名称为x的底层指针(Python中称为引用),引用指向对象x .这样想,你就没有问题了
标签: python comparison comparison-operators