猿问

Python OOP if 语句

python 新手,我被困在本练习的最后一步 如何添加print_pixel_info(self):检查 3 个颜色值中的 2 个是否等于 0,然后打印第三个不是 0 的值?


程序现在打印:


X: 5,Y: 6, 颜色: (250,0,0)


X: 5,Y: 6, 颜色: (83,83,83)


目标是打印:


(在这种情况下,红色为 250 绿色,蓝色为 0,因此打印“红色”,如果值为 (0,250,0),则应改为打印“绿色”)


X: 5, Y: 6, 颜色: (250, 0, 0) 红色


X: 5, Y: 6, 颜色: (83, 83, 83)**


class Pixel:

    def __init__(self, x = 0, y= 0, red = 0, green = 0, blue = 0): 

        self._x = x

        self._y = y

        self._red = red

        self._green = green

        self._blue = blue


    def set_coords(self, x, y):

        self._x = x

        self._y = y


    def set_grayscale(self):

        average = (self._red + self._blue + self._green)/3

        self._red = int(average)

        self._blue = int(average)

        self._green = int(average)


    **def print_pixel_info(self):

        print("X: {},Y: {}, Color: ({},{},{}) {}".format(self._x,self._y,self._red,self._green,self._blue))**



def main():

    p = Pixel(5, 6, 250)

    p.print_pixel_info()

    p.set_grayscale()

    p.print_pixel_info()


main()

谢谢,希望我的问题以其他人可以理解的方式解释大声笑


慕莱坞森
浏览 122回答 1
1回答

慕斯王

你可以print_pixel_info()像这样修改你的东西:def print_pixel_info(self):        color = ""        if self._red == 0 and self._green == 0:            color = "Blue"        elif self._green == 0 and self._blue == 0:            color = "Red"        elif self._red == 0 and self._blue == 0:            color = "Green"        print("X: {},Y: {}, Color: ({},{},{}) {}".format(self._x,self._y,self._red,self._green,self._blue, color))正如您没有提到当 2 种颜色不为零时应该显示什么。color您可以在上面的代码中添加一个默认值。
随时随地看视频慕课网APP

相关分类

Python
我要回答