我正在使用Python 3.1.2(Mac OS X 10.6)并发现这种奇怪的行为(我是新手,顺便说一下):
在交互式提示符上:
>>> fraction = 4 / 3
>>> print(fraction)
1.33333333333
>>> print(type(fraction))
<class 'float'>
但是,如果我在脚本中执行相同的操作,结果会有所不同:
## fraction.py
fraction = 4 / 3
print(fraction)
print(type(fraction))
输出:
1
<class 'int'>
这是正常的吗?
答案 0 :(得分:2)
不,这不正常。您确定在该脚本中运行Python 3吗?可能会选择Python 2.5(Mac OS X上的默认安装)。尝试通过
进行验证import sys
print (sys.version)
如果您将脚本作为./fraction.py
运行,则可以通过添加
#!/usr/bin/env python3.1
在第一行。
答案 1 :(得分:1)
KennyTM说的话。原因是在Python&lt; 3中,如果两个参数都是整数,/
表示整数除法。这很愚蠢,并且在Py3k中进行了更改,以便/
始终返回float
,即使将int
分开。