Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的/=做什么?_Python - Fatal编程技术网

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
    → <代码>2
  • 11.0//5.0
    → <代码>2.0
  • 在Python3中,Python2与来自未来导入部门的
    一起运行,Python2与
    -Q new一起运行

    • 11/5
      → <代码>2.2
  • 11.0/5.0
    → <代码>2.2
  • 11//5
    → <代码>2
  • 11.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)