单斜线不做浮动分割

时间:2014-04-28 20:11:55

标签: python python-3.x

我正在做Python的初学者教程,这是我在论坛上阅读并在我自己的编辑器中尝试过的内容。代码如下

#!/usr/local/bin/python3

def main():
    num = 42 / 9
    print(type(num), num)

if __name__ == "__main__" : main()

但是,上面的程序不是给我一个4.666666666666667的默认输出,而是给我一个仅4的整数输出。我已经读过Python 3中默认的单斜杠使用会给我浮点输出,但是我不确定这里有什么问题(为什么我得到一个int输出?)。

另一个python3唯一的功能,例如'sample {}'.format(n)的字符串格式化工作正常,所以我不确定这是否与我的Python3安装有关。我在mac上,所以我也是mac的默认2.7 python版本。

2 个答案:

答案 0 :(得分:6)

唯一可行的方法是,如果您使用的是Python 2,而不是Python 3.您引用的格式化功能也在Python 2.7中实现,因此很可能就是您正在使用的内容。

可以肯定的是,有一种非常简单的方法可以找到:

import sys
print(sys.version_info)

如果您遇到Python 2,可以将它放在脚本的顶部以实现真正的分割:

from __future__ import division

答案 1 :(得分:0)

默认解释从python 2更改为3.您可以在ideone上进行实际检查。

import sys
print(sys.version_info)
def main():
    num = 42 / 9
    print(type(num), num)

if __name__ == "__main__" : main()

python3.2.2结果:

sys.version_info(major=3, minor=2, micro=3, releaselevel='final', serial=0)
<class 'float'> 4.666666666666667

python2.7.3结果:

sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0)
(<type 'int'>, 4)

#!bash使用 - 类似系统,您的运行环境可能会忽略它。