반응형
숫자를 특정 범위로 제한하고 싶습니다. 현재 다음을 수행하고 있습니다.
minN = 1
maxN = 10
n = something() #some return value from a function
n = max(minN, n)
n = min(maxN, n)
이렇게하면 minN
및 maxN
이내로 유지되지만보기에는 좋지 않습니다. 어떻게하면 더 잘할 수 있습니까?
추신 : 참고로, 저는 Python 2.6을 사용하고 있습니다.
해결 방법
def clamp(n, minn, maxn):
return max(min(maxn, n), minn)
또는 기능적으로 동등한 :
clamp = lambda n, minn, maxn: max(min(maxn, n), minn)
이제 다음을 사용합니다.
n = clamp(n, 7, 42)
또는 완벽하게 명확하게 만드십시오.
n = minn if n < minn else maxn if n > maxn else n
더 명확하게 :
def clamp(n, minn, maxn):
if n < minn:
return minn
elif n > maxn:
return maxn
else:
return n
참조 페이지 https://stackoverflow.com/questions/5996881
반응형
'파이썬' 카테고리의 다른 글
파이썬 How to change the user and group permissions for a directory, by name? (0) | 2020.10.02 |
---|---|
파이썬 Python-10 진수에서 16 진수로, 역방향 바이트 순서, 16 진수에서 10 진수로 (0) | 2020.10.02 |
파이썬 Python에서 JSON의 큰 따옴표 이스케이프 (0) | 2020.10.02 |
파이썬 mkdir -p functionality in Python (0) | 2020.10.02 |
파이썬 .doc to pdf using python (0) | 2020.10.02 |
댓글