Python判断中使用多个and和or的优先级与踩坑

news/2024/8/19 14:40:42

tags: Python Debug

一个问题

最近刷力扣,想试试 Python 新支持的海象操作符, 其实就是能在语句中赋值, 类似下面这样:

if (n:=len(nums)):
    return False

但是当出现下面这种情况的时候, 赋值就会失败:

if True or (a:=1):
    print(a)
'''
NameError: name 'a' is not defined
'''

出现这个错误的原因就是 Python 中andor的优先级问题, 当语句中先出现or的时候, 如果or前面的值为True, 那这个语句就判断为真,而不会进行之后的判断了, 所以后面的赋值就不会执行.
那么问题来了, 当一条判断语句中同时出现andor, 这时候其优先级是如何呢?
根据以往的经验, and要比or的优先级高, 然后not的优先级又要比and高.(但是一般为保险起见,还是在具有and操作符的两端加上小括号)

下面我引用了一段博客上看到的内容, 大家可以参考这篇文章,(Python and or not 优先级) 写的非常详细了.

  • not:如果 x 是假的,则“非假”为真,否则 x 是真的,则非真为假
  • and: 找到并返回第一个 False(假)或最后一个 True(真)
  • or: 找到并返回第一个 True(真)或最后一个 False(假)

http://lihuaxi.xjx100.cn/news/101246.html

相关文章

[附源码]Java计算机毕业设计SSM服装创意定制管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【科学文献计量】Custom node icons使用图片自定义网络图中的节点过程详解并封装函数直接调用

Custom node icons使用图片自定义网络图中的节点过程详解并封装函数直接调用 0 版本信息1 官方示例2 案例详解2.1 加载图片数据2.2 生成网络图节点和边缘2.3 调整网络图布局2.4 坐标系转换2.5 设置图片的大小和中心位置2.6 把图片放置在对应的节点上3 函数封装3.2 封装13.2 封装…

CLIFF

又发现了华为的一个神器啊 咱来说说哦 华为诺亚提出的刷榜3维人体重建领域的工作CLIFF,在 AGORA 排行榜(SMPL 算法赛道)上排名第一,吓人哈.. 论文链接:https://arxiv.org/abs/2208.00571 代码地址:https://github.c…

【Netty】三、Netty心跳检测与断线重连

Netty心跳检测一、Netty心跳检测与断线重连案例客户端代码NettyClientNettyClientHandler服务端代码NettyServerNettyServerChannelInitializerNettyServerHandler测试一、Netty心跳检测与断线重连案例 需求: 1、客户端利用空闲状态给服务端发送心跳ping命令&#…

java算法 API

数组 创建数组 int[] arrnew int[6]; int[] arrnew int[array.size()] ; 数组排序 int nums[] Arrays.sort(nums)数组求长度 nums.length求char[] a 长度 a.length定位 a[i]比较两个数组是否相等 Arrays.equals(ary, ary1))String 获取其长度 s.length()定位某个元素 s.ch…

vscode+ssh+cpolar=优雅的远程coding

写在前面 之前用的都是可视化的远程控制软件(向某葵等)来实现远控,这个最大的优点就是可操作空间很大,但是存在下面几个问题: 1、针对主要业务是编程的用户来说,图形界面的传输无疑是浪费了大量的带宽的,所以一旦你的网…

SpringBoot学习(四)——发送邮件

文章目录1. 发送简单邮件1.1 导入依赖1.2 配置邮件信息1.3 定义接口1.4 定义实现类1.5 测试2. 发送其他格式2.1 发送HTML格式2.2 发送附件1. 发送简单邮件 1.1 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

【Linux】Linux文件权限的理解

&#x1f4ac;推荐一款模拟面试、刷题神器 、从基础到大厂面试题&#xff1a;&#x1f449;点击跳转刷题网站进行注册学习 目录 一、Shell是什么&#xff1f; 1、Shell承担用户和内核间的翻译工作 2、拒绝用户非法请求&#xff0c;保护内核 3、派生子进程执行用户指令 二…