在Python中i**=2是什么意思?是2^i=i吗?
def f()
i=2
while i<len(l)
i**=2
在Python中,i**=2的意思是什么呢?这个表达式其实是把i的值提升到2的幂,也就是说,i会变成i的平方。它并不是说2的i次方等于i。
1 个回答
5
i **= 2
是一种使用了增强赋值的方式,里面的 **
是一个幂运算符。对于数字(还有其他不可变对象)来说,这个操作和下面的意思是一样的:
i = i ** 2
就是把 i
的平方存回 i
里。**
运算符 是幂运算符,它会把左边的数提升到右边的数的幂。
**=
赋值 是这个运算符的 增强 赋值版本。它让左边的数有机会在同一行中进行修改,如果对象是可变的。对于不可变对象来说,这种写法简洁明了。
你提供的代码片段在 Python 中是不合法的;你需要注意缩进(while
块需要多一个缩进级别),而且你在 def
语句和 while
语句后面都缺少了 :
冒号:
def f():
i = 2
while i < len(l):
i **= 2
可以推测这个函数会对 i
做一些其他的操作或者返回结果。