在Python中使用openpyxl模块时得到了奇怪的结果

在Python中使用openpyxl模块时得到了奇怪的结果,python,excel,openpyxl,Python,Excel,Openpyxl,我有一个excel电子表格,其数据如下(从A1到C3): 我想计算一列中无零值的概率,然后将结果写入该列的最后一个单元格。对于第三列,结果应为2/3=0.67 下面是我为做同样的事情而编写的Python脚本,但它显然得到了错误的结果 守则: import openpyxl wb = openpyxl.load_workbook('testXls.xlsx') sheet = wb.active for colNum in range(1, sheet.max_column + 1): c

我有一个excel电子表格,其数据如下(从A1到C3): 我想计算一列中无零值的概率,然后将结果写入该列的最后一个单元格。对于第三列,结果应为2/3=0.67 下面是我为做同样的事情而编写的Python脚本,但它显然得到了错误的结果

守则:

import openpyxl
wb = openpyxl.load_workbook('testXls.xlsx')
sheet = wb.active
for colNum in range(1, sheet.max_column + 1):
    coverCount = 0
    for rowNum in range(1, sheet.max_row + 1):
        if sheet.cell(row=rowNum, column=colNum).value != 0:
            coverCount += 1
    sheet.cell(row=4, column=colNum).value = round(coverCount / 3, 2)
wb.save('testXls2.xlsx')
结果是:


我在代码中找不到任何错误。有人能告诉我这件事吗?我真的很感激。

问题是你在每次迭代的第四行写下值,这会导致不必要的迭代