当前位置: 首页 > news >正文

04 - 运算符与表达式

04 - 运算符与表达式这章讲 Python 里各种各样的运算符。就是加减乘除那些再加上比较、逻辑之类的。内容不算难但细节挺多的当手册看就行。算术运算符这些你应该在数学课上都学过直接看例子print(103)# 13加法print(10-3)# 7减法print(10*3)# 30乘法print(10/3)# 3.3333333333333335除法结果是浮点数print(10//3)# 3整除只取整数部分print(10%3)# 1取余数print(10**3)# 1000幂运算10的3次方几个需要注意的地方除法/的结果永远是浮点数哪怕能整除print(10/2)# 5.0注意是 5.0 不是 5print(type(10/2))# class float整除//是向下取整不是截断print(7//2)# 3print(-7//2)# -4注意不是 -3-7 / 2 -3.5向下取整就是-4。这个在面试题里经常出现很多人会答错。取余%跟整除是对应的print(7%2)# 1print(-7%2)# 1注意不是 -1取余在判断奇偶、循环计数这些场景特别常用# 判断一个数是不是偶数num10ifnum%20:print(偶数)else:print(奇数)比较运算符比较两个值的大小或是否相等结果是True或Falseprint(55)# True等于print(5!3)# True不等于print(53)# True大于print(53)# False小于print(55)# True大于等于print(53)# False小于等于Python 有个很爽的特性——链式比较x5print(1x10)# True等价于 1 x and x 10print(1x3)# Falseprint(10x30)# True在别的语言里你得写x 1 and x 10Python 直接写1 x 10就行跟数学里写的一样。逻辑运算符用来组合多个条件and与、or或、not非。age25has_idTrue# and两个都为 True 才是 Trueprint(age18andhas_id)# True# or有一个为 True 就是 Trueprint(age18orhas_id)# True# not取反print(nothas_id)# False短路求值这个概念很重要。and和or有一个特性and如果第一个条件是False就不会看第二个因为结果肯定是 Falseor如果第一个条件是True就不会看第二个因为结果肯定是 True# 这里第二个条件不会被执行因为第一个是 FalseresultFalseand(1/0)# 不会报错# 这里第二个条件不会被执行因为第一个是 TrueresultTrueor(1/0)# 也不会报错这个特性实际用起来可以做安全的条件检查# 先检查列表是不是空的再去取元素ifmy_listandmy_list[0]hello:print(找到了)如果列表是空的my_list就是False后面的my_list[0]就不会被执行避免了索引越界的错误。返回值的秘密and和or不一定返回True或False它们返回的是决定结果的那个值print(3and5)# 5两个都为真返回最后一个print(0and5)# 0第一个为假直接返回第一个print(3or5)# 3第一个为真直接返回第一个print(0or5)# 5第一个为假返回第二个print(or默认值)# 默认值所以or经常被用来设置默认值nameuser_inputor匿名用户# 如果 user_input 是空字符串name 就是匿名用户赋值运算符就是加上各种算术运算的简写x10x5# x x 5x 变成 15x-3# x x - 3x 变成 12x*2# x x * 2x 变成 24x//5# x x // 5x 变成 4x%3# x x % 3x 变成 1x**3# x x ** 3x 变成 1这些没什么好说的就是为了少写几个字。用多了就习惯了。成员运算符判断一个东西在不在另一个东西里面in和not in。fruits[苹果,香蕉,橘子]print(苹果infruits)# Trueprint(葡萄notinfruits)# Trueprint(香蕉notinfruits)# False# 字符串也可以用print(pyinpython)# Trueprint(javainpython)# Falsein的用法非常直观读起来就跟说英语一样。后面学了列表、字典之后会用得更多。位运算符这些是操作二进制的平时用得不多但面试有时候会问a5# 二进制: 101b3# 二进制: 011print(ab)# 1按位与001print(a|b)# 7按位或111print(a^b)# 6按位异或110print(~a)# -6按位取反print(a1)# 10左移一位1010print(a1)# 2右移一位10实际开发中位运算主要用在性能敏感的场景或者处理二进制数据的时候。一般业务代码里很少写。运算符优先级跟数学一样Python 的运算符也有优先级。从高到低大致是** 幂运算 ~ - 按位取反、正负号 * / // % 乘除 - 加减 位移 按位与 ^ 按位异或 | 按位或 ! 比较 not 逻辑非 and 逻辑与 or 逻辑或说实话这个表我也背不全。我写代码的原则是——不确定优先级就加括号。# 不加括号你能确定这是什么意思吗resultab20xFF# 加了括号一目了然result((ab)2)0xFF加括号不丢人代码能看懂比少写两个括号重要多了。海象运算符:这个稍微高级一点Python 3.8 才加入的。它允许你在表达式里同时赋值# 不用海象运算符datainput(输入内容)iflen(data)0:print(f你输入了{len(data)}个字符)# 用海象运算符if(n:len(input(输入内容)))0:print(f你输入了{n}个字符)一个更实际的场景# 在 while 循环里读取数据while(line:input( ))!quit:print(f你输入了:{line})这个运算符用好了可以让代码更简洁用不好反而会让代码更难读。初期不强制使用等后面遇到合适的场景再说。本章小结算术运算符 - * / // % **注意/返回浮点数//是向下取整比较运算符 ! 支持链式比较逻辑运算符and or not有短路求值特性成员运算符in和not in非常直观好用不确定优先级就加括号别硬记海象运算符:可以在表达式中同时赋值面试题Q110 / 3、10 // 3、10 % 3的结果分别是什么点击查看答案10 / 33.3333333333333335浮点除法10 // 33整除向下取整10 % 31取余注意-10 // 3的结果是-4而不是-3因为整除是向下取整向负无穷方向不是向零取整。Q2and和or的短路求值是什么意思有什么实际用途点击查看答案短路求值是指逻辑运算时如果第一个操作数已经能确定结果就不会计算第二个操作数。A and B如果 A 为假直接返回 A不计算 BA or B如果 A 为真直接返回 A不计算 B实际用途安全的属性/索引访问if obj and obj.name先检查 obj 不是 None 再访问属性设置默认值value user_input or default延迟计算把开销大的操作放在后面前面的条件不满足就跳过Q3-7 // 2的结果是什么为什么不是-3点击查看答案结果是-4。Python 的整除//是向下取整floor division也就是向负无穷方向取整。-7 / 2 -3.5向下取整就是-4。很多其他语言比如 C、Java的整除是向零取整所以-7 / 2在这些语言里是-3。这是 Python 和其他语言的一个区别面试经常考。Q4x 5表达式1 x 10的结果是什么Python 是怎么处理的点击查看答案结果是True。Python 会把1 x 10展开为1 x and x 10也就是1 5 and 5 10两个都是 True所以结果是 True。这是 Python 独有的链式比较语法跟数学里的写法一致比大多数语言更直观。注意x只会被计算一次。上一章 | 下一章字符串 →
http://www.rkmt.cn/news/1383508.html

相关文章:

  • Windows Cleaner:终极免费系统清理工具,彻底解决C盘空间不足问题
  • 03 - 变量与数据类型
  • 1寸证件照怎么制作?2026一寸照尺寸要求+免费制作教程 - 科技大爆炸
  • Keras与Skops安全模式漏洞解析:模型序列化中的任意代码执行风险
  • 便携式超声波流量计 TOP10 推荐:精准测量与便携性兼得
  • 2026 年最受欢迎的电磁流量计品牌排行榜!
  • **BGE(智源)** 与 **M3E(MokaAI)** 讲清楚:定位、版本、参数、用法、RAG 选型建议,直接可用。
  • 车载露营居家随身 WiFi 哪个好用?2026实用机型功能对比 - 资讯快报
  • AssetRipper深度指南:Unity资产逆向重建工作流解析
  • 2026年高校AIGC检测政策最新进展深度解读:各高校标准趋严趋势完整分析
  • 2026年降AI工具改写后论文可读性影响深度解读:质量损失有多大免费完整分析
  • AI写作辅助平台8款AI论文平台榜单,毕业答辩稳了!
  • 当大模型算法岗面试走进餐饮界,AI 能否让餐饮生意告别“经验主义”?
  • 基于资源预测的Agent弹性伸缩:在成本与响应延迟间寻找最佳平衡点
  • Linux 调度域的 flags 标志:负载均衡的策略控制
  • 抖音批量下载技术解析:如何用Python实现高效视频采集
  • 企业级应用如何利用Taotoken实现稳定且低成本的大模型调用
  • 基于API的轻量级框架:将AI模型无缝集成到遗留工业系统
  • Linux服务器入侵排查实战:时间线、权限链与行为流三要素
  • Unity开源项目版本兼容性问题诊断与跨版本适配指南
  • 你的Creo‘未响应’,可能只是被Windows‘坑’了!深入xtop.exe与系统兼容性的那些事儿
  • 全域无死角监测,无感技术填补矿山安防空白
  • 20244321李梓睿 2025-2026-2 《Python程序设计》实验四报告
  • DIY迈克尔逊干涉仪:用光学原理实现微米级振动测量
  • 用ESP8266模拟DCF77信号,让老电波钟重获新生
  • 《技术底稿 41》从三机混跑到四机隔离:微服务集群环境拆分实战复盘
  • Unity游戏Windows安装包制作:用Smart Install Maker快速生成专业Setup
  • Unity接入KBE云服务器登录失败的5层排障指南
  • 户外直播家用备用随身 WiFi 实测:2026 十大公认优质品牌机型盘点 - 资讯快报
  • Midjourney云雾质感跃迁实战手册(从灰蒙蒙到电影级氛围光雾):含12组经DxO Lab实测验证的--stylize与--chaos黄金配比表