文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python 中的or 和 and

2023-01-31 01:53

关注

    在看到python源码的时候,有一句关于or的用法,当时很疑惑,以前一直认为其用法类似与java中的"&&" 和 "||" ,返回的是boolean类型,结果当前是错误的,下面给大家分享一下python中的and和or关键字的用法。

    概念描述:

    空对象:None, "", [], (), {} 这些都是空对象,使用if、while等判断是都是类似于False的情况,反之就是非空对象

    1、and

# 语法:[expression1] and [expression2]
# 结果组合形式:
# 1、expression1<空> : 当第一个表达式为空时,返回expression1的值,expression2不会执行;
if __name__ == "__main__":
    print("" and "test")
    print(None and "test")
    print([] and "test")
    print({} and "test")
    print(() and "test")
# 输出:"", None, [], {}, ()
# 2、expression1<非空> : 
# 2.1、expression2<空> : 返回expression1的值
if __name__ == "__main__":
    print("test" and None)
    print("test" and "")
    print("test" and ())
    print("test" and {})
    print("test" and [])
# 输出:"", None, [], {}, ()
# 2.2、expression2<非空> :返回expression2的值
if __name__ == "__main__":
    print("test" and "testsuccess")
    print("test" and "OK")
    print("test" and (1,))
    print("test" and {"test":"success"})
    print("test" and [1,2])
# 输出:"testsuccess" ,"ok", (1,),{"test":"success"},[1, 2]

    2、or

# 语法:[expression1] and [expression2]
# 组合形式:
# 1、expression1<非空> : 当第一个表达式为非空时,返回expression1的值。
if __name__ == "__main__":
    print("yes" or "ok")
    print((1,) or "ok")
    print([1, 2] or "ok")
    print({"name":"ok"} or "ok")
# 输出:yes、(1,), [1, 2], {"name":"ok"}

# 2、expression1<空> : 当第一个表达式为空时,返回expression2的值
if __name__ == "__main__":
    print("" or None)
    print(None or ())
    print([] or {})
    print(() or [])
    print(() or "")
    
    print("" or "yes")
    print(None or (1, 2))
    print([] or {"test" : "success"})
    print(() or [1, 2])
# 输出:None,(), {},[] ,"", "yes", (1,2),{"test" : "success"},[1,2]

    3、总结

    “or”和“and”都是返回最后执行的表达式的值,使用or时,先判断第一个表达式是否为空,如果第一个表达式为空,那么才会执行第二个表达式,从而返回第二个表达式的值;使用and时,如果第一个表达式为空,那么不需要执行第二个表达式,因此返回第一个表达式的值。有点类似一java中的"&&"和"||"的理念。简单概述就是如果使用or和and时,从左到右执行表达式,如果在执行某个表达式之后,就已经可以判断整体表达式是否为空,是否非空,那么之后的表达式就不会再执行。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯