尝试查找图像中黑色像素的百分比(Python 2)

尝试查找图像中黑色像素的百分比(Python 2),python,python-2.7,Python,Python 2.7,黑色像素用B表示,而非黑色像素用N表示。对于每个图像,计算黑色像素的百分比,精确到十分之一 我需要输出为80.0%但我得到了0.0,我的代码有什么问题?任何建议都将不胜感激!谢谢 line1 = "BBBBBBBBBB" line2 = "BBNNBBNNBB" line3 = "BBNNBBNNBB" line4 = "BBBBBBBBBB" line5 = "BBBBNNBBBB" line6 = "BBNBBBBNBB" line7 = "BBBNNNNBBB" line8 = "BBBB

黑色像素用B表示,而非黑色像素用N表示。对于每个图像,计算黑色像素的百分比,精确到十分之一

我需要输出为80.0%但我得到了0.0,我的代码有什么问题?任何建议都将不胜感激!谢谢

line1 = "BBBBBBBBBB"
line2 = "BBNNBBNNBB"
line3 = "BBNNBBNNBB"
line4 = "BBBBBBBBBB"
line5 = "BBBBNNBBBB"
line6 = "BBNBBBBNBB"
line7 = "BBBNNNNBBB"
line8 = "BBBBBBBBBB"

data = ["BBBBBBBBBB", "BBNNBBNNBB", "BBNNBBNNBB", "BBBBBBBBBB", "BBBBNNBBBB", "BBNBBBBNBB", "BBBNNNNBBB", "BBBBBBBBBB"]

def percentBlack(data):
    numB = 0
    numP = 0
    for line in data:
        for pixel in line:
            if pixel == "B":
                numB += 1
            numP += 1
    return round((numB/numP)*100,1)

print(percentBlack(data))

您的代码在Python3中运行良好

我相信您的代码是用Python 2编写的,其中两个int的除法运算符生成一个int

def percentBlack(data):
    numB = 0
    numP = 0
    for line in data:
        for pixel in line:
            if pixel == "B":
                numB += 1
            numP += 1
    return round((numB * 100.0/numP),1)

在计算%之前,您是否尝试转换为浮点/双精度?您可能正在进行整数除法:如果结果介于[0,1]之间,则可能以0结束!关于变量,调试模式告诉了您什么?是的,我需要在Python2中使用它。伟大的编辑!这就是我需要的。所以,如果我需要一个%符号,我是否只需要使用这个print语句:print(percentBlack(data)),“%”?还有其他建议吗?虽然我通常会打印(str(percentBlack(data))+“%”),但这应该行得通