Python 教程之运算符(12)a += b 并不总是等价于 a = a + b

在 python 中 a += b 的行为方式并不总是与 a = a + b 相同,相同的操作数在不同的条件下可能会给出不同的结果。但要了解它们为何表现出不同的行为,您必须深入研究变量的工作原理。

所以首先,你需要知道幕后发生了什么。 

创建新变量:

a = 10
print(" id of a : ", id(10) ," Value : ", a )

输出 :

id of a :  11094592  Value :  10

在上面的示例中,值 10 被存储在内存中,并且它的引用被分配给 a。 

修改变量:

a = 10 # 为变量赋值创建新对象
print(" id of a : ", id(a) ," Value : ", a )

a = a + 10 # 修改变量的值创建新对象
print(" id of a : ", id(a) ," Value : ", a )

a += 10 # Modifying value of variable creats new object
print(" id of a : ", id(a) ," Value : ", a )

输出 :

id of a :  11094592  Value :  10
id of a :  11094912  Value :  20
id of a :  11095232  Value :  30

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python语句`print(0xA 0xB)`的输出结果是23。 这是因为0xA和0xB都是十六进制数字,分别对应十进制的10和11。在Python,空格被视为运算符,所以这个语句实际上等价于`print(0xA + 0xB)`,即10 + 11,结果为23。 ### 回答2: Python语句print(0xA 0xB)的输出结果是:SyntaxError: invalid syntax。 在Python,0xA和0xB分别表示十六进制的10和11。然而,在这个语句两个十六进制数之间缺少了运算符。正确的语法应该是print(0xA + 0xB),即两个十六进制数相加并输出结果。 而在该语句,解释器会检测到错误的语法,因为两个十六进制数之间没有运算符连接。因此,会抛出SyntaxError异常,提示语法无效。 正确的语句应该是print(0xA + 0xB),它的输出结果是21。 ### 回答3: Python语句print(0xA 0xB)的输出结果是: 在 Python ,0xA 表示十六进制数 A,其十进制等价值为 10。0xB 表示十六进制数 B,其十进制等价值为 11。当这两个十六进制数连在一起,并用空格隔开时,在该语句将被视为两个不同的数字。 如果我们运行这个语句,Python 解释器会检测到语法错误。这是因为在两个数字之间缺少了运算符,例如加号 (+) 或减号 (-)。 所以,这个语句 print(0xA 0xB) 并不能执行运算,也无法输出任何结果。相反,它会引发一个 SyntaxError 异常,并指示该语句存在语法错误。 为了使这个语句正常工作并输出结果,我们可以在两个十六进制数之间添加一个运算符,例如加号 (+)。修正后的语句可以写作 print(0xA + 0xB)。这个语句将会输出结果 21。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值