可以用我未见过的方式在Python中编写更短的(没有分号)方法吗?
@staticmethod
def __add(a, b):
value = a + b
if value > 1:
integer = int(value)
if value == integer:
return 1.0
return value - integer
if value < 0:
integer = int(value)
if value == integer:
return 0.0
return value - integer + 1
return value
代码类似于%
,但它允许端点无论代码修改结束值的是什么。
答案 0 :(得分:1)
return 1 - (-value%1) if value > 0 else value%1
答案 1 :(得分:0)
为什么不:
value = (a + b) % 1.0
if (value == 0.0 and a + b > 0) value = 1.0
我不确定为什么第二行上需要a + b > 0
条件,但如果a + b
是正整数则匹配返回1的代码中的行为,如果{{1是零或负整数。当a + b
是整数而不是0时,您想要返回1的具体原因是什么?
编辑:进一步查看文档,第一行应该是a + b
(value = fmod(a + b, 1.0) + (1.0 if a + b < 0.0 else 0.0)
建议更精确,第二部分要更正结果的符号。)
答案 2 :(得分:0)
您可以使用以下方法。 <{1}}范围之外的颜色值已正确修改。
0.0 - 1.0