我正在做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版本。
答案 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
使用 - 类似系统,您的运行环境可能会忽略它。