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

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

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

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'
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.