Python赋值运算符(入门必读)

Python赋值运算符详解
文章介绍了Python中的赋值运算符,包括基本的等号赋值以及扩展的加减乘除等赋值运算符。这些运算符允许开发者将右侧的值直接或经过运算后赋给左侧的变量。还提到了连续赋值和等于号与双等于号的区别。文章强调了扩展赋值运算符的使用便利性,并给出了错误示例,如未定义变量直接使用扩展赋值运算符的情况。

赋值运算符用来把右侧的值传递给左侧的变量(或者常量);可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除、函数调用、逻辑运算等。

Python 中最基本的赋值运算符是等号=;结合其它运算符,=还能扩展出更强大的赋值运算符。

基本赋值运算符

=是 Python 中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量,请看下面的例子:

#将字面量(直接量)赋值给变量
n1 = 100
f1 = 47.5
s1 = "http://c.biancheng.net/python/"
#将一个变量的值赋给另一个变量
n2 = n1
f2 = f1
#将某些运算的值赋给变量
sum1 = 25 + 46 
sum2 = n1 % 6
s2 = str(1234)  #将数字转换成字符串
s3 = str(100) + "abc"

连续赋值

Python 中的赋值表达式也是有值的,它的值就是被赋的那个值,或者说是左侧变量的值;如果将赋值表达式的值再赋值给另外一个变量,这就构成了连续赋值。请看下面的例子:

a = b = c = 100

=具有右结合性,我们从右到左分析这个表达式:

  • c = 100 表示将 100 赋值给 c,所以 c 的值是 100;同时,c = 100 这个子表达式的值也是 100。
  • b = c = 100 表示将 c = 100 的值赋给 b,因此 b 的值也是 100。
  • 以此类推,a 的值也是 100。

最终结果就是,a、b、c 三个变量的值都是 100。

= 和 ==

= 和 == 是两个不同的运算符,= 用来赋值,而 == 用来判断两边的值是否相等,千万不要混淆。

扩展后的赋值运算符

=还可与其他运算符(包括算术运算符、位运算符和逻辑运算符)相结合,扩展成为功能更加强大的赋值运算符,如下表所示。扩展后的赋值运算符将使得赋值表达式的书写更加优雅和方便。

Python 扩展赋值运算符
运算符说 明用法举例等价形式
=最基本的赋值运算x = yx = y
+=加赋值x += yx = x + y
-=减赋值x -= yx = x - y
*=乘赋值x *= yx = x * y
/=除赋值x /= yx = x / y
%=取余数赋值x %= yx = x % y
**=幂赋值x **= yx = x ** y
//=取整数赋值x //= yx = x // y
&=按位与赋值x &= yx = x & y
|=按位或赋值x |= yx = x | y
^=按位异或赋值x ^= yx = x ^ y
<<=左移赋值x <<= yx = x << y,这里的 y 指的是左移的位数
>>=右移赋值x >>= yx = x >> y,这里的 y 指的是右移的位数

这里举个简单的例子:

n1 = 100
f1 = 25.5
n1 -= 80  #等价于 n1=n1-80
f1 *= n1 - 10 #等价于 f1=f1*( n1 - 10 )
print("n1=%d" % n1)
print("f1=%.2f" % f1)

运行结果为:

n1=20

f1=255.00

通常情况下,只要能使用扩展后的赋值运算符,都推荐使用这种赋值运算符。

但是请注意,这种赋值运算符只能针对已经存在的变量赋值,因为赋值过程中需要变量本身参与运算,如果变量没有提前定义,它的值就是未知的,无法参与运算。例如,下面的写法就是错误的:

n += 10

该表达式等价于 n = n + 10,n 没有提前定义,所以它不能参与加法运算。

 Python教程,8天python从入门到精通,学python看这套就够了

### Python 赋值运算符的使用方法与示例 #### 1. 基本赋值运算符 `=` 基本赋值运算符用于将右侧表达式的值赋予左侧变量。它是从右向左的操作,因此等号右边必须是一个有效的表达式或值。 ```python n1 = 100 # 将整数值100赋给变量n1 f1 = 47.5 # 将浮点数值47.5赋给变量f1 s1 = "Python" # 将字符串"Python"赋给变量s1 sum1 = 25 + 46 # 将计算结果71赋给变量sum1 ``` 需要注意的是,等号左边不能是常量或表达式[^2]。 #### 2. 多重赋值 多重赋值允许在一个语句中同时为多个变量赋值。 ```python a = b = c = d = &#39;hello&#39; # 所有变量都指向同一个对象 &#39;hello&#39; print(a, b, c, d) # 输出 hello hello hello hello m, n = 3, 5 # 分别将35赋值给mn print(m, n) # 输出 3 5 ``` #### 3. 解构赋值(拆包) 解构赋值可以从容器类型的数据结构中提取数据并分配给多个变量。 ```python x, y, z = [1, 2, 3] # 列表拆包 print(x, y, z) # 输出 1 2 3 a, b, c = (4, 5, 6) # 元组拆包 print(a, b, c) # 输出 4 5 6 key, value = {"name": "Alice", "age": 25}.items().__iter__().__next__() # 字典拆包 print(key, value) # 输出 name Alice ``` 当变量数量与值的数量不匹配时,可以通过星号`*`指定可变长度参数。 ```python o, *p, q = 1, 2, 3, 4, 5, 6 # 使用 * 进行灵活拆包 print(o, p, q) # 输出 1 [2, 3, 4, 5] 6 ``` #### 4. 复合赋值运算符 复合赋值运算符结合了算术或其他操作与赋值功能于一体,简化代码书写。 ##### 加法赋值 (`+=`) ```python a = 10 a += 5 # 等价于 a = a + 5 print(a) # 输出 15 ``` ##### 减法赋值 (`-=`) ```python b = 20 b -= 8 # 等价于 b = b - 8 print(b) # 输出 12 ``` ##### 乘法赋值 (`*=`) ```python c = 3 c *= 4 # 等价于 c = c * 4 print(c) # 输出 12 ``` ##### 除法赋值 (`/=`) ```python d = 9 d /= 3 # 等价于 d = d / 3 print(d) # 输出 3.0 ``` ##### 整除赋值 (`//=`) ```python e = 10 e //= 3 # 等价于 e = e // 3 print(e) # 输出 3 ``` ##### 取模赋值 (`%=`) ```python f = 7 f %= 3 # 等价于 f = f % 3 print(f) # 输出 1 ``` ##### 幂赋值 (`**=`) ```python g = 2 g **= 3 # 等价于 g = g ** 3 print(g) # 输出 8 ``` ##### 按位与赋值 (`&=`), 按位或赋值 (`|=`), 按位异或赋值 (`^=`) 这些按位运算符适用于整数类型的二进制操作。 ```python h = 5 # 二进制表示为0101 h &= 3 # 二进制表示为0011;等效 h = h & 3 结果为0001 即十进制中的1 print(h) # 输出 1 i = 6 # 二进制表示为0110 i |= 4 # 二进制表示为0100;等效 i = i | 4 结果为0110 即仍为6 print(i) # 输出 6 j = 10 # 二进制表示为1010 j ^= 5 # 二进制表示为0101;等效 j = j ^ 5 结果为1111 即十进制中的15 print(j) # 输出 15 ``` ##### 左移赋值 (`<<=`), 右移赋值 (`>>=`) 位移运算符改变数据存储位置上的比特序列分布情况。 ```python k = 2 # 二进制形式下相当于0010 k <<= 2 # 左移两位后变成1000 对应十进制下的8 print(k) # 输出 8 l = 8 # 初始状态为1000 l >>= 2 # 向右移动两个单位得到0010 或者说回到原来的2 print(l) # 输出 2 ``` 以上展示了各种类型的Python赋值运算符及其具体应用实例[^1][^2]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值