这是我代表三角形的自定义类。我试着写代码,查看是否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式代码的出现,从而导致大型程序上的程序员更加快乐(并且减轻体重,改善性生活等)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句