为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕婉清6462132 2021-03-31 01:10:47
我是Python的新手,我开始学习基础知识。我是C ++人,所以//运算符是新的东西。根据我正在阅读的书:>> 4/22.0>> 2/40.5>> 5//42>> 2//40问题是当我写入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]
查看完整描述

4 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

在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/3

1

>>> 4//3

1

>>> from __future__ import division

>>> 4/3

1.3333333333333333

>>> 4//3

1


查看完整回答
反对 回复 2021-04-01
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

发生差异的情况是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/2

2

>>> 2/4

0

>>> 5//4

1

>>> 2//4

0

>>> 


查看完整回答
反对 回复 2021-04-01
  • 4 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信