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

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的结果赋值给n2
 n3 = (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)          # 200

b -= 50
print(b)          # 150

b *= 2
print(b)          # 300

b %= 2
print(b)          # 0

4. 运算符优先级

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

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

注意:

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


http://www.kler.cn/a/369234.html

相关文章:

  • 多个立方体盒子组成
  • 什么是微服务中的反应性扩展?
  • 华为原生鸿蒙操作系统的发布有何重大意义和影响:
  • 4个提取音频办法,轻松实现视频转音频!
  • 实现一个完整FPGA项目的流程
  • 基于Python的B站视频数据分析与可视化
  • 无人机之倾斜摄影技术篇
  • 【代码随想录Day53】图论Part05
  • 海外服务器的价格取决于服务器的性能和租赁时间
  • leetcode-73-矩阵置零
  • 【LeetCode】每日一题 2024_10_22 构成整天的下标对数目 I(暴力/哈希)
  • Golang | Leetcode Golang题解之第502题IPO
  • 嵌入式1_ARM学习(六)——Makefile
  • 【GPIO】2.ADC配置错误,还是能得到电压数据
  • CRC 校验码
  • 【iOS】知乎日报第一周总结
  • Vue3_开启全局websocket
  • Qt6切换音轨
  • ffmpeg视频滤镜:均值模糊-boxblur
  • MAN Truck Bus EDI 需求分析
  • Flutter Column组件实战案例
  • 2024 最新 frida技术栈 第一部分
  • Linux云服务器安装Docker、MySQL、Redis
  • 国产系统安装Oracle报错处理
  • 利用 Google AI 工具提升应用智能化:ML Kit、TensorFlowLite、Cloud Vision、AutoML、Gemini
  • 手机折叠屏贴膜应用