2015-02-05 97 views
0

我的程序是查找类型数量,令牌数量和类型与令牌比率。但是,我不知道如何告诉Python ttr的答案不是整数。如何知道python我需要小数?

from nltk.corpus import inaugural 

print inaugural.fileids() 

tokens = inaugural.words("1789-Washington.txt") 

numtokens = len(tokens) 
print numtokens 

types = sorted(set(tokens)) 
numtypes = len(types) 
print numtypes 

# This is the part I'm unsure about.  
ttr = numtypes/numtokens 
print ttr 

回答

2

如果您在Python 3个工作,除法运算符/默认情况下,执行浮点除法:

>>> 3/2 
1.5 
>>> 4/2 
2.0 

因为整数除法是由//操作处理。

在Python 2.x中,如果你想在整数除法精确到小数点,您可以提名者或分母转换为float(),像这样:

ttf = float(numtypes)/numtokens 

此外,作为tobias_k指出,你可以不要

>>> from __future__ import division 
>>> 3/2 
1.5 

得到Python3式的分工在Python 2.x的

+1

或'从__future__进口division' – 2015-02-05 22:24:37

+1

浮法()方法奏效FO r my python 2.感谢您的及时回复! – Auborey 2015-02-05 22:28:03