我有一个文本文件“luawrite”,我把每一行分成4列,然后用第4列的值除以(第3列的值乘以8)。文件luawrite如下所示:
0.012281001 00:1c:c4:c2:1f:fe 1441 44000000
0.012285001 00:1c:c4:c2:1f:fe 1441 44000000
0.012288001 00:1c:c4:c2:1f:fe 1441 44000000
0.012292001 00:1c:c4:c2:1f:fe 1441 44000000
0.012295001 00:1c:c4:c2:1f:fe 1441 44000000
0.012299001 00:1c:c4:c2:1f:fe 1441 44000000
0.012302001 00:1c:c4:c2:1f:fe 1441 44000000
我为此编写的代码如下:
#!/usr/bin/python
import collections
result = collections.defaultdict(int)
with open("luawrite", "r") as f:
for line in f:
hashes = line.split()
val1 = int(hashes[2])
val2 = int(hashes[3])
k = (val1*8)/val2
print k
我正在使用Python2.6。但我得到的解都是零。这个代码的问题在哪里,请告诉我。这可能是个小错误,但我找不到。谢谢!你知道吗
在py2.x中,整数除法截断输出,因此您将在此处获得
0
作为输出:使用
float
:演示:
因此,必须至少有一个操作数是float才能获得正确的输出。你知道吗
您还可以在py2.x中导入py3.x除法运算符的功能:
另一种选择是
operator.truediv
:相关问题 更多 >
编程相关推荐