from dataclasses import dataclass @dataclass class RGB: r: int = 0 g: int = 0 b: int = 0 def return_diff_color(c1: RGB, c2: RGB, percent: int) -> RGB: def return_diff(n1, n2, percent=100) -> int: if n1 > n2: return n1 - int((n1 - n2) * (percent / 100)) elif n2 > n1: return n2 - int((n2 - n1) * (percent / 100)) return n1 new_rgb = RGB(r=return_diff(c1.r, c2.r,percent), g=return_diff(c1.g, c2.g,percent), b=return_diff(c1.b, c2.b,percent)) return new_rgb def color_to_hex(color: RGB) -> str: def return_hex_number(n: int): hnum=hex(int(n)) return f'{str(hnum).replace("0x", "").zfill(2)}' r: str = return_hex_number(color.r) g: str = return_hex_number(color.g) b: str = return_hex_number(color.b) return f"{r}{g}{b}" base_color = RGB(r=68, g=121, b=84) end_color = RGB(r=0, g=255, b=68) print(base_color) print(end_color) print(return_diff_color(base_color,end_color,50)) for x in range(1, 101,20): # _color=return_diff_color(c1=base_color,c2=end_color,percent=x) _color = f'#{color_to_hex(return_diff_color(base_color, end_color, x))}' print(_color) # print(return_diff(0,100,50))