python中的/=做什么?
我正在阅读,但我不明白python中的/=做什么?,python,Python,我正在阅读,但我不明白/=符号的作用/=对我来说很有意义: a = 9 a /= 3 a == 3 # => True 但是/= a = 9 a //= 3 a == 3 # => Also True 谢谢。/在python3中用作“整数除法”,请看 在C语言中,用/对整数进行除法可以作为“带底除法”或“整数除法”。为了提供这种功能,python提供了/运算符,而/运算符将给出浮点结果 权威的参考资料当然是 从命令行版本(当您试图解决类似问题时非常有用): /正如您所知,经典版是
/=
符号的作用<代码>/=对我来说很有意义:
a = 9
a /= 3
a == 3 # => True
但是/=
a = 9
a //= 3
a == 3 # => Also True
谢谢。/在python3中用作“整数除法”,请看 在C语言中,用
/
对整数进行除法可以作为“带底除法”或“整数除法”。为了提供这种功能,python提供了/
运算符,而/
运算符将给出浮点结果
权威的参考资料当然是
从命令行版本(当您试图解决类似问题时非常有用):
/
正如您所知,经典版是这样的/
操作符是在Python2.2中添加的,Python2.2进行地板分割,通过添加此操作符,您可以使用来自未来导入分割的来使/
操作符进行真分割
a//=3
相当于a=a//3
下面是总结:
Python Version operator / operator //
-------------------------------------------------
2.1x and older classic Not Added
2.2 and newer classic floor
(without import)
2.2 and newer true floor
(with import)
/
是floor division:它进行除法和向下舍入,但如果操作数是float,它仍然会生成一个float。在Python2中,它与整数的常规除法相同,除非您使用from\uuuuu future\uuuu import division
来获得Python3的“真正”除法行为
所以,是的,这有点复杂。实际上,它是通过除以两个整数来重新创建Python2中的行为的,因为这在Python3中有所改变
在Python 2中:
11/5
→ <代码>2
11.0/5.0
→ <代码>2.2
11//5
→ <代码>211.0//5.0
→ <代码>2.0一起运行,或Python2与-Q new一起运行
:
11/5
→ <代码>2.2
11.0/5.0
→ <代码>2.211//5
→ <代码>211.0//5.0
→ <代码>2.0当然,添加
=
只会把它变成组合赋值操作符,就像/=
一样,为了挑剔,它相当于a=a.。uu ifloordiv(3)
,如果定义了该方法(参见)。我认为某些类型(可能是NumPy数组?)会覆盖该操作符以执行相应操作。不过,这并不重要。@delnan——对于可变的类型,api希望它能够在适当的位置执行操作,尽管它实际上并不需要这样做。
Python Version operator / operator //
-------------------------------------------------
2.1x and older classic Not Added
2.2 and newer classic floor
(without import)
2.2 and newer true floor
(with import)