我正在尝试编写一个文件来比较三个数字可用的排列数量。当前脚本是
tmp = open("tmp_out.txt","w+")
out = open("output_trip.txt", "w")
N = 4
for k in range(2,N+1):
count = 1
for j in range(1,k):
for i in range(0,j):
tmp.write("({},{},{})\n".format(i,j,k))
count = len(tmp.readlines())
out.write('{}{:10d}\n'.format(k,count))
期望的输出是这样的
2 1
3 4
4 10
然而,当我
cat
我的文件时,我只是得到
2 0
3 0
4 0
当我在循环外尝试
readline()
时,它会适当地计算一个文件,但我需要它来获得多个值。我缺少的是简单的东西吗?
我尝试了很多我在网上找到的计数变体,但没有一个可以在循环中工作。我只包括了这个练习中最简单的。
我可以写一个 bash 脚本来计算这可能是最简单的,但我更愿意用 python 完成它。
jasonharper 是正确的。它所要做的只是在计数工作之前包括 tmp.seek(0) 。正确的版本是:
N = 4
for k in range(2,N+1):
count = 1
for j in range(1,k):
for i in range(0,j):
tmp.write("({},{},{})\n".format(i,j,k))
tmp.seek(0)
count = len(tmp.readlines())
out.write('{}{:10d}\n'.format(k,count))