2017-04-26 1 views
1

간단한 문제가 있지만 해결 방법을 모르겠습니다. 는 R, G, B 값이 1.0보다 큰 경우max() 및 min() python

class CorRGB: 

    def __init__(self, red, green, blue): 
     self.r = min(1.0,red); 
     self.g = min(1.0,green); 
     self.b = min(1.0,blue); 


    def __repr__(self): 
     return str(self.r*255) + str(" ") + str(self.g) + str(" ") + str(self.b) 


c1 = CorRGB(10.0, -4.0, 0.1) 
print(str(c1)) 

그래서, 그것은 1.0를 반환해야합니다 :

지금까지 내 코드입니다. r, g, b 값이 0.0보다 작은 경우 0.0을 반환해야합니다. min()max() 함수를 사용해야하지만 한 번에 하나씩 만 처리 할 수 ​​있습니다. 둘 다 동일한 인수로 사용해야합니다.

+2

...'min (1.0, max (color, 0.0))'? –

+0

감사합니다 !!! 너무 바보 같아서 xD – Guilhermeffable

+0

왜 min()과 max()를 사용해야하나요? 'red <1.0 else 1.0' – DSLima90

답변

1

이 경우 일반적인 관용구는 다른 인수로 하나 개의 함수의 결과를 전달하는 것입니다 :

self.r = min(max(red, 0.0), 1.0) 

temp = max(red, 0.0) 
self.r = min(temp, 1.0) 

그것은 중요하지 않습니다 같은 거의 비슷하다 이 경우 maxmin이라고 부르는 주문입니다. 그래서 다음과 같이 잘 작동합니다 :

self.r = max(min(red, 1.0), 0.0)