当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : python除法/和//的疑惑。
帖子发表于 : 2011-02-10 19:33 
头像

注册: 2006-02-10 16:36
帖子: 2805
系统: Xubuntu14.04/Deepin
送出感谢: 15
接收感谢: 28
在python核心编程中提到:/是整除,而//是浮点除法。
可是我却得到这样的结果:
引用:
>>> 17/4
4
>>> 17//4
4
>>> (17/4)==(17//4)
True
>>>

而不是我想象的17//4=4.25;(17/4)==(17//4)为假。
为什么,难道这个规则在python2.6中改变了?


_________________
友帮拓,真难听。有没有接触官方的老大?给改了吧!
一直想找一个在linux下的Visual FoxPro/access桌面数据库。MUIBase还算是最相近的。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: python除法/和//的疑惑。
帖子发表于 : 2011-02-10 20:41 
头像

注册: 2007-09-29 3:09
帖子: 5777
送出感谢: 0 次
接收感谢: 5
代码:
>>> 17/4
4
>>> 17//4
4
>>> 17.0/4
4.25
>>> 17.0//4
4.0

明白?


_________________
HUNT Unfortunately No Talent...


页首
 用户资料  
 
3 楼 
 文章标题 : Re: python除法/和//的疑惑。
帖子发表于 : 2011-02-11 11:54 
头像

注册: 2006-02-10 16:36
帖子: 2805
系统: Xubuntu14.04/Deepin
送出感谢: 15
接收感谢: 28
如此说来是 :
/在被除数是整数的情况下整除,被除数为浮点数时为浮点除法;
//无论被除数是整数或者浮点数总是采取甩尾法取整。

是书写错了,还是翻译搞错了 :em20


_________________
友帮拓,真难听。有没有接触官方的老大?给改了吧!
一直想找一个在linux下的Visual FoxPro/access桌面数据库。MUIBase还算是最相近的。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: python除法/和//的疑惑。
帖子发表于 : 2011-03-02 16:12 
头像

注册: 2007-11-20 10:58
帖子: 137
地址: Hangzhou, China
送出感谢: 0 次
接收感谢: 0 次
你要看你的书针对的哪个版本的python


页首
 用户资料  
 
5 楼 
 文章标题 : Re: python除法/和//的疑惑。
帖子发表于 : 2011-03-05 22:15 

注册: 2010-05-25 16:49
帖子: 186
送出感谢: 0 次
接收感谢: 0 次
py3 中 /是浮点除法

// 是向负数端取整


页首
 用户资料  
 
6 楼 
 文章标题 : Re: python除法/和//的疑惑。
帖子发表于 : 2011-03-05 22:49 

注册: 2010-09-27 12:59
帖子: 2061
送出感谢: 0 次
接收感谢: 0 次
版本关系么..
小概念没弄明白.了解下


_________________
生活里,有很多转瞬即逝,像在车站的告别,刚刚还相互拥抱,转眼已各自天涯。很多时候,你不懂,我也不懂,就这样,说着说着就变了,听着听着就倦了,看着看着就厌了,跟着跟着就慢了,走着走着就散了,爱着爱着就淡了,想着想着就算了。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: python除法/和//的疑惑。
帖子发表于 : 2011-03-06 7:28 
头像

注册: 2006-02-10 16:36
帖子: 2805
系统: Xubuntu14.04/Deepin
送出感谢: 15
接收感谢: 28
和版本没有关系。
只是译者的汉语水平有限,那段描述实在是语无伦次,不知所云。
计算机专业人员学这语言,学那语言,为啥不知道把自己的母语学好?这是与人交流的基础,展示自己才能的基础。


_________________
友帮拓,真难听。有没有接触官方的老大?给改了吧!
一直想找一个在linux下的Visual FoxPro/access桌面数据库。MUIBase还算是最相近的。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: python除法/和//的疑惑。
帖子发表于 : 2011-03-07 9:46 
头像

注册: 2007-11-20 10:58
帖子: 137
地址: Hangzhou, China
送出感谢: 0 次
接收感谢: 0 次
嗯,查了下文档,我自己的理解,不对的请指出。

Python 2.7:

python-2.7.1-docs-html/reference/expressions.html#binary-arithmetic-operations:
引用:
The / (division) and // (floor division) operators yield the quotient of their arguments.

在2.7中,/是整数除法,//是做floor division,也就是和floor()函数一样。
引用:
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 1/2
0
>>> 1//2
0
>>> -1/2
-1
>>> -1//2
-1

可见,/和//的结果还是一样的?(整数的时候)

而在python 3.0中,/默认是浮点数除法。//就成了类似整数除法的代替了?python3的浮点除法,可以在2.7中通过__future__模块获得。

引用:
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import division
>>> 1/2
0.5
>>> 1//2
0
>>> -1/2
-0.5
>>> -1//2
-1


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译