题目
设 a = 10 ,以下语句的运算结果不等于 20 的是()A.a+=aB.a*=2 C.a,a=5,4*a
设 a = 10 ,以下语句的运算结果不等于 20 的是()
A.a+=a
B.a*=2
C.a,a=5,4*a
题目解答
答案
对于选项 A,a+=a 相当于 a=a+a ,即 a=10+10,所以该选项的运算结果为 20。
对于选项 B,a*=2 相当于 a=a2 ,即 a=10*2,所以该选项的运算结果也为 20。
对于选项 C,a,a=5,4a 的意思是先将变量 a 的值赋为 5,再将 4a(也就是 4*10) 的值赋给变量 a,这样最终变量 a 的值就变为了 40。
故,答案为C
解析
本题考查Python中的赋值运算符和表达式执行顺序。关键点在于理解不同运算符的作用以及赋值语句的执行过程:
- 选项A和选项B通过复合赋值运算符(
+=
和*=
)直接修改变量a
的值; - 选项C的赋值语句涉及元组解包,需注意表达式计算顺序和变量覆盖规则。
选项A:a += a
- 运算逻辑:
a += a
等价于a = a + a
。 - 计算过程:初始
a = 10
,执行后a = 10 + 10 = 20
。 - 结果:等于20。
选项B:a *= 2
- 运算逻辑:
a *= 2
等价于a = a * 2
。 - 计算过程:初始
a = 10
,执行后a = 10 * 2 = 20
。 - 结果:等于20。
选项C:a, a = 5, 4 * a
- 运算逻辑:
- 计算右侧表达式:先计算
4 * a
,此时a
仍为初始值10,因此4 * a = 40
。 - 元组解包赋值:将
(5, 40)
解包为两个变量a
和a
,即第一个a
赋值为5,第二个a
赋值为40。 - 变量覆盖:最终
a
的值被第二个赋值覆盖为40。
- 计算右侧表达式:先计算
- 结果:等于40,不等于20。