我正在做一个非常初级的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版本。
发布于 2014-04-28 12:14:16
唯一可能的方法是使用Python 2,而不是Python 3。您所引用的格式化特性也是在Python2.7中实现的,所以很可能您正在使用它。
可以肯定的是,有一个非常简单的方法可以找到:
import sys
print(sys.version_info)
如果您一直使用Python 2,则可以将其放在脚本的顶部以启用真正的除法:
from __future__ import division
发布于 2014-04-28 12:20:30
默认的解释从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
-like系统使用,您的运行环境可能会忽略它。
https://stackoverflow.com/questions/23350315
复制