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

运算符详解

运算符是程序中执行各种计算的符号,掌握它们是编程的基础。


目录

  1. 算术运算符
  2. 比较运算符
  3. 逻辑运算符
  4. 赋值运算符
  5. 位运算符
  6. 成员运算符
  7. 身份运算符
  8. 运算符优先级

算术运算符

基本算术运算

a,b=10,3print(a+b)# 13 加法print(a-b)# 7 减法print(a*b)# 30 乘法print(a/b)# 3.333... 除法(返回浮点数)print(a//b)# 3 整除(返回整数)print(a%b)# 1 取余print(a**b)# 1000 幂运算

运算符优先级

# 先乘除后加减result=10+3*5# 25,不是 65# 使用括号改变优先级result=(10+3)*5# 65# 幂运算优先级最高result=2**3*5# 40,不是 2 ** (3 * 5) = 32768

比较运算符

基本比较

a,b=10,20print(a==b)# False 等于print(a!=b)# True 不等于print(a<b)# True 小于print(a>b)# False 大于print(a<=b)# True 小于等于print(a>=b)# False 大于等于

字符串比较

# 字符串按字典序比较print("apple"<"banana")# Trueprint("Python"=="python")# False(区分大小写)print("ABC"<"abc")# True(大写字母的 ASCII 值更小)

链式比较

age=25# 相当于 18 <= age and age <= 60print(18<=age<=60)# True# 相当于 age < 18 or age > 60print(not(18<=age<=60))# False

逻辑运算符

基本逻辑运算

a,b=True,Falseprint(aandb)# False 逻辑与(两者都为 True)print(aorb)# True 逻辑或(至少一个为 True)print(nota)# False 逻辑非(取反)

短路求值

# and 短路:第一个为 False,不再计算第二个x=Falseand(10/0)# 不会报错,因为短路了print(x)# False# or 短路:第一个为 True,不再计算第二个x=Trueor(10/0)# 不会报错print(x)# True

实用技巧

# 使用 or 提供默认值name=input("请输入姓名:")or"匿名"print(f"你好,{name}")# 使用 and 简化条件判断# 以下两种写法等价ifage>=18:print("成年人")age>=18andprint("成年人")

赋值运算符

基本赋值

x=10x=20# 重新赋值

复合赋值运算符

x=10x+=5# x = x + 5 => 15x-=3# x = x - 3 => 12x*=2# x = x * 2 => 24x/=4# x = x / 4 => 6.0x//=3# x = x // 3 => 2x%=3# x = x % 3 => 2x**=2# x = x ** 2 => 4

多重赋值

# 同时赋值多个变量a,b,c=10,20,30print(a,b,c)# 10 20 30# 交换变量值(Python 独有)x,y=10,20x,y=y,xprint(x,y)# 20 10# 解包赋值numbers=[1,2,3]a,b,c=numbersprint(a,b,c)# 1 2 3

位运算符

基本位运算

a,b=10,6# 10 = 1010# 6 = 0110print(a&b)# 2 按位与 (0010)print(a|b)# 14 按位或 (1110)print(a^b)# 12 按位异或 (1100)print(~a)# -11 按位取反print(a<<2)# 40 左移两位(相当于乘以 4)print(a>>2)# 2 右移两位(相当于整除以 4)

位运算应用

# 判断奇偶num=15is_odd=num&1# 结果为 1 表示奇数,0 表示偶数print(is_odd)# 1# 快速交换a,b=10,20a^=b b^=a a^=bprint(a,b)# 20 10# 判断是否为 2 的幂num=16is_power_of_two=num>0and(num&(num-1))==0print(is_power_of_two)# True

成员运算符

in 和 not in

# 列表成员numbers=[1,2,3,4,5]print(3innumbers)# Trueprint(6notinnumbers)# True# 字符串成员text="Hello World"print("Hello"intext)# Trueprint("python"intext)# False# 字典成员(检查键)person={"name":"张三","age":25}print("name"inperson)# Trueprint("张三"inperson)# False

身份运算符

is 和 is not

a=10b=10c=[1,2,3]d=[1,2,3]# 对于小整数,Python 会缓存print(aisb)# True(相同对象)# 对于列表,即使内容相同,也是不同对象print(cisd)# False(不同对象)print(c==d)# True(内容相同)# None 判断result=Noneprint(resultisNone)# True(推荐写法)print(result==None)# True(不推荐)

id() 函数

# 查看对象的内存地址a=10print(id(a))# 140234567890000b=10print(id(b))# 与 a 相同c=10+5print(id(c))# 可能不同

运算符优先级

优先级表(从高到低)

优先级运算符描述
1**幂运算
2~,+,-按位取反、正负号
3*,/,//,%乘、除、整除、取余
4+,-加、减
5<<,>>位左移、位右移
6&按位与
7^按位异或
8|按位或
9in,not in,is,is not,<,<=,>,>=,<>,==,!=比较、身份、成员
10not逻辑非
11and逻辑与
12or逻辑或
13=,+=,-=赋值

优先级示例

# 示例 1result=2**3+5*2# 计算顺序:2**3=8, 5*2=10, 8+10=18print(result)# 18# 示例 2result=10+20>15and5<3# 计算顺序:10+20=30, 30>15=True, 5<3=False, True and False=Falseprint(result)# False# 示例 3:使用括号明确优先级result=(10+20)*(5-2)print(result)# 90

实战练习

练习 1:计算器

编写一个计算器程序,支持加减乘除和幂运算。

# TODO: 编写代码

练习 2:判断闰年

使用运算符判断给定的年份是否为闰年。

# TODO: 编写代码

练习 3:成绩评级

根据分数输出成绩等级(A、B、C、D、E)。

# TODO: 编写代码

本节小结

本节我们学习了:

  1. 算术运算符的使用和优先级
  2. 比较运算符和链式比较
  3. 逻辑运算符和短路求值
  4. 赋值运算符和多重赋值
  5. 位运算符及其应用
  6. 成员运算符 in 和 not in
  7. 身份运算符 is 和 is not
  8. 运算符的优先级规则

下一节:我们将学习分支结构,掌握程序的条件判断逻辑。


继续学习:分支结构:if-else 与 match-case

http://www.jsqmd.com/news/531032/

相关文章:

  • Notepad Next:跨平台文本编辑器的完美替代方案,告别系统限制!
  • Amphenol ICC线束RJE1Y32305644401高速连接器线束替代方案全解
  • 《Git 从入门到精通:超全命令速查手册(本地安装 + 服务器部署 + 冲突解决)》
  • xhs:零基础掌握小红书数据采集的实用指南
  • 2026年膏药公司推荐指南:热熔胶膏药、纯中药膏药、老黑膏、黑膏药、膏药选择指南 - 优质品牌商家
  • Wan2.2-I2V-A14B效果深度评测:多风格图像生成作品展示
  • 2026工业设备故障诊断高性价比厂家推荐:振动检测/激光对中仪/现场动平衡仪/红外热成像仪/设备故障诊断/振动分析仪/选择指南 - 优质品牌商家
  • 计科专业毕设开题报告模板:从选题到技术方案的标准化构建指南
  • 艾法斯3920 艾发斯3920B无线电综合测试仪
  • 2026年热门的湖南工业无人机维修培训本地人气榜 - 品牌宣传支持者
  • Qwen2.5-1.5B Streamlit部署案例:为盲人用户定制的语音合成+对话导航集成方案
  • LaTeX Workshop插件避坑指南:为什么你的VScode一保存就报Formatting failed?
  • 手写发布订阅者模式
  • SDMatte设计师效率工具链:与Photoshop动作脚本、Lightroom预设、Canva模板联动设想
  • 4种突破性方案:md2pptx工具解决Markdown到PPT转换的核心难题
  • YOLOE镜像零基础入门:快速掌握三种预测模式(文本/视觉/无提示)
  • 股票复盘神器5.6保姆级教程:从涨停板分析到游资动向追踪的全流程指南
  • CC Switch模型测试功能深度解析:从配置到优化的全流程指南
  • RWKV7-1.5B-g1a实战案例:用它自动生成产品介绍文案与会议纪要摘要
  • 学术PDF处理:OpenClaw+GLM-4.7-Flash自动生成文献综述
  • Notepad Next:跨平台文本编辑的终极解决方案
  • NipaPlay-Reload v1.3.0:3大体验升级与全平台覆盖
  • 解锁像素艺术新可能:Fusion Pixel Font全方位应用指南
  • 元宇宙消防员:扑灭NFT火灾日入十万——软件测试从业者的专业指南
  • 银行客服智能体架构设计与效率优化实战
  • Deequ数据质量监控:State、Analyzers与Metrics的协同架构解析
  • Retinaface+CurricularFace镜像功能体验:一键检测最大人脸并比对
  • nanobot模型量化实战:4GB内存运行OpenClaw高效任务
  • CoPaw模型开源社区贡献指南:问题排查、代码提交与协作规范
  • Wu反走样算法实战解析:从原理到代码实现