加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

if命令在python中

发布时间:2020-12-20 13:02:16 所属栏目:Python 来源:网络整理
导读:if "aa" or "bb" or "cc" or "dd" or "ee" or "ff" in attrs["show"]: self.xx = xxxx 我有这样的代码,检查attrs [“show”]是否包含这些字符串中的任何一个,然后为self.xx分配一些值 但这个“IF”命令是否正确?因为根据我的结果,如果命令始终为真(这是不可
if "aa" or "bb" or "cc" or "dd" or "ee" or "ff" in attrs["show"]:
    self.xx = xxxx

我有这样的代码,检查attrs [“show”]是否包含这些字符串中的任何一个,然后为self.xx分配一些值

但这个“IF”命令是否正确?因为根据我的结果,如果命令始终为真(这是不可能的),这似乎是这样的

解决方法

请尝试以下方法:

if any(s in attrs["show"] for s in ("aa","bb","cc","dd","ee","ff")):
    self.xx = xxxx

您当前的if语句将始终评估为True,因为您不是检查每个字符串是否在attrs [“show”]中,而是检查“aa”是否为True,或者“bb”是否为True,以及是否为on.由于“aa”将始终在布尔上下文中评估为True,因此您将始终输入if子句.

相反,使用我的示例中的any()函数,它接受一个iterable,如果其任何元素为True,则返回True.类似于代码中的一堆或类似,一旦找到一个True元素,它就会短路.在这个例子中,上面的代码等同于以下(但更简洁!):

if ("aa" in attrs["show"] or "bb" in attrs["show"] or "cc" in attrs["show"] or
    "dd" in attrs["show"] or "ee" in attrs["show"] or "ff" in attrs["show"]):
    self.xx = xxxx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读