Python 中 (&,|)和(and,or)之间的区别 逻辑判断

and or 符号 只是单一的对比
& | 适合批量对比

(&,|)和(and,or)是两组比较相似的运算符,用在“与”/ “或”上,在用法上有些许区别。
(&,|)和(and,or)是用来比较两组变量的,格式基本上是:

a & b
a | b
a and b
a or b
 
 
  • 1
  • 2
  • 3
  • 4

如果a,b是数值变量, 则&, |表示位运算, and,or则依据是否非0来决定输出,

  • &, |:


# 1&2,2在二进制里面是10,1在二进制中是01,那么01与运算10得到是0 


1 & 2         # 输出为 0, 
1 | 2          # 输出为3
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • and, or:
  •  # 判断变量是否为0, 是0则为False,非0判断为True,
     # and中含0,返回0; 均为非0时,返回后一个值, 
    2 and 0   # 返回0
    2 and 1   # 返回1
    1 and 2   # 返回2
    
    # or中, 至少有一个非0时,返回第一个非0,
    2 or 0   # 返回2
    2 or 1   # 返回2
    0 or 1   # 返回1 
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    如何a, b是逻辑变量, 则两类的用法基本一致

    In[103]:(3>0) | (3<1)
    Out[103]: True
    In[104]:(3>0) and (3<1)
    Out[104]: False
    In[105]:(3>0) or (3<1)
    Out[105]: True
    In[106]:(3>0) & (3<1)
    Out[106]: False
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    值得提及的是在DataFrame的切片过程,要注意逻辑变量的使用,

    需要求得满足多个逻辑条件的数据时,要使用& 和|,在某些条件下用and/ or会报错‘ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().’

    target_url = "http://aima.cs.berkeley.edu/data/iris.csv"
    data = pd.read_csv(target_url, header=None, columns=['s_line', 's_wid', 'p_line', 'p_wid', 'kind'])
    data.columns = ['s_line', 's_wid', 'p_line', 'p_wid', 'kind']
    x_data = data.iloc[:, :-1]
    
    # 在多个逻辑条件下,用& 或者|,
    x_1 = x_data[x_data['s_line'] > 6 & x_data['p_wid'] > 0]
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    用and报错
    这里写图片描述

    参考解释

    •                     <li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true">
                              <use xlink:href="#csdnc-thumbsup"></use>
                          </svg><span class="name">点赞</span>
                          <span class="count">54</span>
                          </a></li>
                          <li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;}"><svg class="icon" aria-hidden="true">
                              <use xlink:href="#icon-csdnc-Collection-G"></use>
                          </svg><span class="name">收藏</span></a></li>
                          <li class="tool-item tool-active is-share"><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;1582594662_002&quot;}"><svg class="icon" aria-hidden="true">
                              <use xlink:href="#icon-csdnc-fenxiang"></use>
                          </svg>分享</a></li>
                          <!--打赏开始-->
                                                  <!--打赏结束-->
                                                  <li class="tool-item tool-more">
                              <a>
                              <svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
                              </a>
                              <ul class="more-box">
                                  <li class="item"><a class="article-report">文章举报</a></li>
                              </ul>
                          </li>
                                              </ul>
                  </div>
                              </div>
              <div class="person-messagebox">
                  <div class="left-message"><a href="https://blog.csdn.net/weixin_40041218">
                      <img src="https://profile.csdnimg.cn/D/B/8/3_weixin_40041218" class="avatar_pic" username="weixin_40041218">
                                              <img src="https://g.csdnimg.cn/static/user-reg-year/2x/3.png" class="user-years">
                                      </a></div>
                  <div class="middle-message">
                                          <div class="title"><span class="tit"><a href="https://blog.csdn.net/weixin_40041218" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" target="_blank">祢唿</a></span>
                                              </div>
                      <div class="text"><span>发布了18 篇原创文章</span> · <span>获赞 76</span> · <span>访问量 15万+</span></div>
                  </div>
                                  <div class="right-message">
                                              <a href="https://im.csdn.net/im/main.html?userName=weixin_40041218" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信
                          </a>
                                                              <a class="btn btn-sm  bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">关注</a>
                                      </div>
                              </div>
                      </div>
      </article>
      
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值