숫자 출력에서 천(1000) 단위마다 쉼표를 출력하려면 어떻게 하나요?


보통 큰 숫자를 쓸 때 100000같이 안 쓰고 100,000같이 표시하잖아요. 파이썬에서 숫자를 출력할 때도 이렇게 하려면 어떻게 해야 하나요? 저는 파이썬 2.6을 쓰고 있습니다.

빠른 코드보다는 가독성이 좋았으면 좋겠어요

  • 2016년 01월 21일에 작성됨

조회수 350


1 답변


좋아요
0
싫어요
채택취소하기

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'
  • 2016년 01월 21일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close