这是我代表三角形的自定义类。我试着写代码,查看是否self.a
,self.b
以及self.c
大于0,这将意味着我有角,角,角。
在下面,您将看到检查A和B的代码,但是当我使用self.a != 0
它时,它可以正常工作。我相信我没有&
正确使用。有任何想法吗?这是我的称呼方式:print myTri.detType()
class Triangle:
# Angle A To Angle C Connects Side F
# Angle C to Angle B Connects Side D
# Angle B to Angle A Connects Side E
def __init__(self, a, b, c, d, e, f):
self.a = a
self.b = b
self.c = c
self.d = d
self.e = e
self.f = f
def detType(self):
#Triangle Type AAA
if self.a != 0 & self.b != 0:
return self.a
#If self.a > 10:
#return AAA
#Triangle Type AAS
#elif self.a = 0:
#return AAS
#Triangle Type ASA
#Triangle Type SAS
#Triangle Type SSS
#else:
#return unknown
您应该写:
if (self.a != 0) and (self.b != 0) :
“ &
”是按位运算符,不适合布尔运算。&&
在Python中,“ ”的等效项是“和”。
检查所需内容的一种较短方法是使用“ in”运算符:
if 0 not in (self.a, self.b) :
您可以使用“ in”检查是否有任何东西是可迭代的一部分,它适用于:
"foo" in ("foo", 1, c, etc)
将返回true"foo" in ["foo", 1, c, etc]
将返回true"a" in "ago"
将返回true"foo" in {"foo" : "bar"}
将返回true作为对评论的回答:
是的,由于要创建Tuple对象,因此使用“ in”的速度较慢,但是实际上性能不是问题,此外,在Python中,可读性也很重要。
对于三角形检查,更容易阅读:
0 not in (self.a, self.b, self.c)
比
(self.a != 0) and (self.b != 0) and (self.c != 0)
重构也更容易。
当然,在此示例中,它实际上并不是那么重要,它是非常简单的代码段。但是这种风格导致了Python式代码的出现,从而导致大型程序上的程序员更加快乐(并且减轻了体重,改善了性生活,等等)。
问题内容: 我不明白这行的含义: 其中 参数 是字符串 为什么通常要对python字符串使用和运算符? 问题答案: 假设您使用的是的值,但如果说的是值,那么您希望使用一个空字符串代替。您一般会做什么? 这就是表达的意思。首先,你应该明白与运营商的作用: 返回如果是,否则返回。 返回如果是,否则返回。 所以,你的表情: 实际上等效于: 在以下情况下如何计算表达式: 评估为: result = (”
问题内容: 我了解doublenot运算符在JavaScript中的作用。我很好奇它的用法,以及我最近的断言是否正确,我对此很好奇。 我说这既没有意义,也不是因为和都将someVar评估为布尔值,所以!! 是多余的。 实际上,我唯一想到使用double not运算符是合法的,是如果您想与另一个布尔值进行严格比较(因此可能返回的值显式地期望为true或false)。 它是否正确?当我注意到jQuer
问题内容: 我对使用Python中的逻辑运算符获得的结果感到有些困惑。我是一个初学者,正在学习一些书籍,但是它们并没有像我所希望的那样详尽地解释。 这是我自己的代码: 似乎只是输出两个变量。 因此,我添加了另一个变量整数。然后我打印并得到以下输出: 后台Python到底是怎么回事?为什么输出的不是7或5、2之类的。 问题答案: Python布尔运算符返回最后计算的值,而不是True / False
问题内容: double not 运算符在PHP中做什么? 例如: 上面的代码会做什么? 问题答案: 这不是“ double not运算符”,它是两次应用的 not 运算符。 无论操作数如何, 该权利都将导致布尔值。然后左边将否定该布尔值。 __ 这意味着对于任何真值(非零的数字,非空字符串和数组等),您将获得布尔值,对于任何假值(0、0.0 、、空字符串或空数组),您将获得布尔值。 它在功能上等
问题内容: 我有以下格式的json文件:- 我想根据以下内容查询文档:- 我尝试使用SearchSourceBuilder和QueryBuilders.matchQuery,但无法使用AND和OR运算符放置多个子查询。 我们如何使用OR和AND运算符查询elasticsearch? 问题答案: 我认为在这种情况下,Bool查询是最好的选择。 就像是 : 在Java中: 该部分是S,该部分都或多或少
问题内容: 因此,我正在与解释器一起玩,并输入以下内容: 最初,我认为这与False和True值有关,因为: 但这似乎无关紧要,因为False始终为0,并且从上述试验看来,它并不是输出的最大价值。 老实说,我在这里看不到这种模式,在文档中也找不到任何东西(老实说,我真的不知道如何有效地寻找它)。 那么,如何 在Python中工作? 问题答案: 从Python文档中: 表达式首先计算; 如果为假,则