숫자 출력에서 천(1000) 단위마다 쉼표를 출력하려면 어떻게 하나요?
조회수 6180회
보통 큰 숫자를 쓸 때 100000
같이 안 쓰고 100,000
같이 표시하잖아요.
파이썬에서 숫자를 출력할 때도 이렇게 하려면 어떻게 해야 하나요?
저는 파이썬 2.6을 쓰고 있습니다.
빠른 코드보다는 가독성이 좋았으면 좋겠어요
1 답변
-
1. format 지정 - 파이썬 2.7 이상
value = 1234435577 print "{:,}".format(value)
2. locale모듈 사용 :
locale은 POSIX locale의 DB/기능과 관련된 모듈로, 각 국가나 문화의 시간, 언어 등과 관련되어 있습니다.
locale.format(format, val[, grouping[, monetary]])은 LC_NUMERIC 세팅에 맞춰서 val의 형식을 맞춰줍니다.
import locale print locale.setlocale(locale.LC_ALL, 'en_US') print locale.format("%d", 1255000, grouping=True)
결과 :
en_US 1,255,000
3. 직접 함수를 정의하는 경우 :
어떻게 구현하느냐에 따라서 다 다르겠지만, 제가 쓰는 방법은 다음과 같습니다. 단, 밑의 함수는 파라미터가 숫자일 때만 쓸 수 있습니다
def group(number): s = '%d' % number groups = [] while s and s[-1].isdigit(): groups.append(s[-3:]) s = s[:-3] return s + ','.join(reversed(groups)) group(-23432432434.34) #'-23,432,432,434'
댓글 입력