2.7.4上的Python的/和//运算符

我是Python的新手,我开始学习基础知识。我是C ++人,所以//运算符是新的东西。根据我正在阅读的书:


>> 4/2

2.0

>> 2/4

0.5

>> 5//4

2

>> 2//4

0

问题是当我写入5//4结果为1时,当我写入4/2结果为2而不是2.0时,当我写入2/4结果为0时。我必须写“ 2.0 / 4.0”,结果为0.5。这些作者的错误还是我做错了事?


我在linux2上使用Python 2.7.4,[GCC 4.7.3]


慕婉清6462132
浏览 165回答 4
4回答

有只小跳蛙

在Python 2.x中,默认除法运算符为“经典除法”。这意味着/,当与整数运算符一起使用时,将导致类似于C ++或java [ie 4/3 = 1]的整数除法。在Python 3.x中,这已更改。在那里,/指的是“真实划分” [ 4/3 = 1.3333..],而//用于请求“经典/地板划分”。如果要在Python 2.7中启用“真除法”,则可以from __future__ import division在代码中使用。资料来源:PEP 238例如:>>> 4/31>>> 4//31>>> from __future__ import division>>> 4/31.3333333333333333>>> 4//31

犯罪嫌疑人X

发生差异的情况是Python 3.x。在Python 3.0中,7 / 2将返回3.5,并且7 // 2将返回3。运算符/为floating point division,运算符//为floor division或integer division。但是,如果Python 2.x没有任何区别,并且我相信文本是错误的,那么这里就是我得到的输出。Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information.>>> 4/22>>> 2/40>>> 5//41>>> 2//40>>> 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python