weixin_39721336 2023-10-22 22:55 采纳率: 77.8%
浏览 5
已结题

python if or输出的问题

a=['192.160.224.209:7060',
   '192.160.226.99:2603',
   '192.160.224.53:18192',
   '192.179.38.7:53']
for b in a:
    if "192.160.224." or "192.160.226" in b:
        print("有"+b)
    else :
        print("没有")

输出:
输出:
有192.160.224.209:7060
有192.160.226.99:2603
有192.160.224.53:18192
有192.179.38.7:53
这个有192.179.38.7:53输出是怎么回事?第四个不应该是 没有 吗?

  • 写回答

3条回答 默认 最新

  • 柯本 2023-10-22 23:09
    关注

    你的
    if "192.160.224." or "192.160.226" in b:
    写错了,它永远成立,因为in的优先级高于or
    所以它等价于if "192.160.224." or ("192.160.226" in b):
    而对python,or永远返回第一个值,所以它又等价于if "192.160.224." :
    对if,因为后面不为Flase,它就成立
    正确的

    a=['192.160.224.209:7060',
       '192.160.226.99:2603',
       '192.160.224.53:18192',
       '192.179.38.7:53']
    for b in a:
        if "192.160.224." in b or "192.160.226" in b:
            print("有"+b)
        else:
            print("没有"+b)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 创建了问题 10月22日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助