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

Python 基础语法 - 赋值运算符

运算符说明
=简单赋值运算符
+=、-=、*=、/=、%=、//=、**=等复合赋值运算符

1. 赋值运算符的功能

  • 所有的赋值运算符都是用来给变量赋值的(都是完成将数据保存到一个变量中)
  • 重要结论:所有的赋值运算符表达式都没有结果 -> 无法提供数据

2. 简单赋值运算符:=

name = 'abc'    # 定义变量,将‘abc’赋值给name
name = 'xyz'    # 重新赋值,将'xyz'赋值给name# =的右边只要是一个数据或者可以计算结果的表达式,都可以给=左边的变量进行赋值
n1 = True
print(n1)
n2 = 2 + 3 * 2 - 10 + 2 ** 10
print(n2)  # 1022# 错误写法
# n3 = (n2 = n1 + 10)
# print(n3)
'''
原因:n2 = n1 + 10-----》将n1 + 10的结果赋值给n2n3 = (n2 = n1 + 10)-----》只是将n1+10的结果赋值给了n2,但是n2 = n1 + 10整体没有结果,无法给n3赋值
'''
# 正确写法一
# n2 = n1 + 10
# n3 = n2
# print(n3)# 正确写法二
# == 判断两边的数据是否相等,如果相等则为True、不想等则为False
n3 = (n2 == n1 + 10)
print(n3)  # False

3. 复合赋值运算符:+= -= *= /= //= %= **=

  • 变量名 += 数据
    • 先将变量中本来保存的数据取出来和后面的数据进行加法运算,最后将运算结果保存到前面的变量中

注意:

  • 变量名对应的变量必须是已经赋值过的变量
m1 = 3
m1 = 9    # 重新赋值
print(m1)n1 = 3
n1 += 9  # 等价于n1 = n1 + 9,先计算n1 + 9,然后给n1进行重新赋值
print(n1)# 问题1:一定要书写成+=,而不是+ =
a = 3
a *= 10
print(a)# 问题2:在使用复合赋值运算符时,一定要先定义变量,然后才使用
# b += 1   # NameError: name 'b' is not defined# 练习
b += 100
print(b)          # 200b -= 50
print(b)          # 150b *= 2
print(b)          # 300b %= 2
print(b)          # 0

4. 运算符优先级

混合运算中先算优先级高的运算符,再算优先级低的运算符:

  • 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
  • ** > * / % // > + -
  • and > or
  • 有括号先算括号里面的 - ()

注意:

  • =用于定义变量或给变量重新赋值
  • =的右边只要是一个数据或可以计算结果的表达式,都可以给=左边的变量赋值
  • 无论=右边的表达式多么复杂,永远都是先计算=右边表达式的结果,然后给=左边的变量赋值,换句话,=的优先级最低
  • += -= *= /= //= %= **=的工作原理:必须先定义变量,然后给该变量进行相应的运算,最后给该变量进行重新赋值


http://www.mrgr.cn/news/60703.html

相关文章:

  • Java-I/O框架04:对象流、序列化、反序列化及注意事项
  • Springboot项目搭建的问题
  • python数据处理常用操作
  • 深度学习(六)CNN:图像处理的强大工具(6/10)
  • C语言二刷指针篇
  • AI跟踪报道第62期-本周AI新闻: 微软推出Copilot的AI Agent和Computer Control
  • auto占位符(C++11~C++17)
  • C语言实现高并发编程——线程池
  • Open3D-Geometry-14:Distance Queries距离查询方法将网格生成为隐式表示
  • 【专题】关系模型的基本理论
  • 使用chatglm API处理论文
  • 排序算法简记
  • 五、Hadoop 分布式文件系统(HDFS)的原理与架构专业解析
  • python 数据结构 1
  • 一文贯通RAG的技术介绍和构建(简易版+附详细代码)
  • 2024年【制冷与空调设备安装修理】考试内容及制冷与空调设备安装修理最新解析
  • Java程序设计:spring boot(12)——定时调度集成 - Quartz
  • 怎么把照片恢复至手机?一文读懂详细教程与多种方法!
  • 从JDK 17 到 JDK 21:Java 新特性
  • 北理工计算机考研难度分析
  • ctfshow(151->154)--文件上传漏洞--.user.ini
  • 热门四款深度数据恢复软件大比拼!!!
  • 一个临床数据收集/调查问卷APP模板(streamlit+MongoDB)
  • rand5生成rand7
  • 代码随想录之字符串
  • Linux 进程间通信_匿名管道