在Python中使用AND和NOT运算符

诺亚·克拉克(Noah Clark):

这是我代表三角形的自定义类。我试着写代码,查看是否self.aself.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”检查是否有任何东西是可迭代的一部分,它适用于:

  • 元组。IE:"foo" in ("foo", 1, c, etc)将返回true
  • 清单。IE:"foo" in ["foo", 1, c, etc]将返回true
  • 字符串。IE:"a" in "ago"将返回true
  • 字典 IE:"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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Linux

在Python中使用+和+ =运算符进行串联

来自分类Linux

逻辑`和`运算符如何在Python中使用整数?

来自分类Python

在python中使用相同的运算符添加lambda函数

来自分类Python

在Python赋值运算符中使用逗号和下划线的含义?

来自分类Java

无法在Eclipselink中使用的函数和运算符

来自分类Dev

如何在CI中使用OR和AND运算符查询?

来自分类Dev

在R中使用$和%%运算符

来自分类Dev

在C中使用宏和#运算符打印空间

来自分类Dev

在Python中使用运算符关闭文件

来自分类Dev

在groupby中使用三元运算符的Python

来自分类Dev

在Python中使用or运算符捕获组

来自分类Dev

在python中使用or运算符

来自分类Dev

在类方法和函数中使用扩展运算符

来自分类Dev

此代码中使用的运算符==和*是什么?

来自分类Dev

在C ++中使用<< ++和>> ++运算符

来自分类Dev

Python:如何在all()中使用运算符?

来自分类Dev

在Python 3.7中使用walrus运算符

来自分类Dev

使用or和not运算符

来自分类Dev

在MySQL和php中使用对象运算符

来自分类Dev

如何在IN和NOT IN运算符中使用SearchCriteria API?

来自分类Dev

在 if () 运算符中使用 &&

来自分类Dev

Lua - 如何在表中使用运算符“和”?

来自分类Dev

如何在 SQL 的 WHERE 子句中使用 IN 运算符和 AND 运算符...?

来自分类Dev

在 powershell 命令中使用和/或运算符

来自分类Dev

如何在 CLIPS 中使用 OR 和 AND 运算符?

来自分类Dev

在条件语句中使用 AND 和 OR 的 JavaScript 运算符

来自分类Dev

如何在 Python Selenium 中使用 css 或运算符

来自分类Dev

在laravel中使用“AND”和“OR”运算符的多个where条件

来自分类Dev

在 Python 中使用比较运算符(> 和 <)比较颜色

Related 相关文章

热门标签

归档