我似乎无法在这个网站上找到答案,尽管看起来它很常见.我试图输出一个双倍的两个文件中的行数比.
#Number of lines in each file
inputLines = sum(1 for line in open(current_file))
outputLines = sum(1 for line in open(output_file))
Run Code Online (Sandbox Code Playgroud)
然后得到比例:
ratio = inputLines/outputLines
Run Code Online (Sandbox Code Playgroud)
但即使我初始化它,这个比率似乎总是一个整数和圆形:
ratio = 1.0
Run Code Online (Sandbox Code Playgroud)
谢谢.
gon*_*opp 26
在python 2中,两个整数除法的结果总是一个整数.要强制浮动除法,您需要在除法中使用至少一个浮点数:
ratio = float(inputLines)/outputLines
小心不要这样做ratio = float(inputLines/outputLines):虽然这会导致浮动,但它是在进行整数除法后获得的,因此结果将是"错误的"(如"不是你所期望的")
在python 3中,整数除法行为被改变,并且两个整数的除法导致浮点数.您也可以在python 2.7中使用此功能,方法是from __future__ import division输入文件.
原因ratio = 1.0不起作用的是类型(在python中)是值的属性,而不是变量 - 换句话说,变量没有类型.
a= 1.0 # "a" is a float
a= 1 # "a" is now a integer
Run Code Online (Sandbox Code Playgroud)