如何在 Python 中比较精度的整数?
How to compare integers with accuracy in Python?
我有一个颜色元组。例如,(218、174、84)。任务是将每个红色、绿色和蓝色值增加一些增量,然后将其与精度 1 进行比较。我如何以 Python 方式执行此操作?你知道最佳实践吗?
颜色:(218、174、84)
增量:5
对于红色值 222、223、224 是合法的。绿色:178、179、180,蓝色:88、89、90。
def valid_color(orig_color, new_color, increment):
return all(c1 + increment - 1 <= c2 <= c1 + increment + 1 for c1, c2 in zip(orig_color, new_color))
使用zip()
将原始颜色的成分与您要比较的颜色配对。然后使用比较运算符测试每个组件是否有效。
如果您想使用 python 魔法并且只使用 ==
,您可以这样做:
class Color(tuple):
def __init__(self, *_, inc=0):
self.inc = inc
def __eq__(self, other):
return all(c1 + self.inc - 1 <= c2 <= c1 + self.inc + 1 for (c1, c2) in zip(self, other))
c = Color((1, 2, 3), inc=5)
c2 = Color((5, 6, 8))
print(c == c2)
我有一个颜色元组。例如,(218、174、84)。任务是将每个红色、绿色和蓝色值增加一些增量,然后将其与精度 1 进行比较。我如何以 Python 方式执行此操作?你知道最佳实践吗?
颜色:(218、174、84) 增量:5
对于红色值 222、223、224 是合法的。绿色:178、179、180,蓝色:88、89、90。
def valid_color(orig_color, new_color, increment):
return all(c1 + increment - 1 <= c2 <= c1 + increment + 1 for c1, c2 in zip(orig_color, new_color))
使用zip()
将原始颜色的成分与您要比较的颜色配对。然后使用比较运算符测试每个组件是否有效。
如果您想使用 python 魔法并且只使用 ==
,您可以这样做:
class Color(tuple):
def __init__(self, *_, inc=0):
self.inc = inc
def __eq__(self, other):
return all(c1 + self.inc - 1 <= c2 <= c1 + self.inc + 1 for (c1, c2) in zip(self, other))
c = Color((1, 2, 3), inc=5)
c2 = Color((5, 6, 8))
print(c == c2)