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

조회수 6293회

보통 큰 숫자를 쓸 때 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'
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)