Python/2.7 information

파이썬 출력 format관련.

qkqhxla1 2015. 4. 16. 15:03

http://pyformat.info/ 의 내용을 다 정리해옴. 반은 알고 반은 모르는 출력형식이다.


직접 해봐서 익히거나 필요할때 찾기용으로 적어둠.


http://khanrc.tistory.com/entry/Python-String-Format-Cookbook 에도 꽤 유용한 정보가 많다.


# -*- encoding: cp949 -*-
print '%s %s' % ('one', 'two') #오래된 방식의 기본 출력.
print '{} {}'.format('one', 'two') #새로운 방식
print '{1} {0}'.format('one', 'two'),'\n' #이런식으로 바꿔서 출력 가능함.

print '%10s' % ('test', ) #오래된 방식의 해당 자리에 맞춰서 출력함. 오른쪽에 맞춤.
print '{:>10}'.format('test') #위와 같지만 최근의 방식.

print '%-10s' % ('test', ),'hey' #오래된 방식의 해당 자리에 맞춰서 출력. 왼쪽에 맞춤.
print '{:<10}'.format('test'),'hey','\n' #위와 같지만 최근의 방식.

print '{:*>10}'.format('test') #10자리에맞춰서 test를 오른쪽에 맞춰서 출력. 공백대신 *을채움.
print '{:#<10}'.format('test'),'\n' #10자리에맞춰서 test를 왼쪽에 맞춰서 출력. 공백대신 #을 채움.

print '{:^10}'.format('test'),'hey','\n' #10자리에맞춰서 test를 한가운데에 출력.

print '%.5s' % ('xylophone', ) #'xylophone'[:5]와 동일.
print '{:.5}'.format('xylophone'),'\n' #위와 같은데 최근의 방식.

print '%d' % (42, ) #숫자 출력
print '{:d}'.format(42),'\n' #최근의 숫자 출력.

print '%f' % (3.141592653589793, ) #실수 출력.
print '{:f}'.format(3.141592653589793),'\n' #최근의 실수 출력.

print '%4d' % (42, ) #4자리에 맞춰서 42출력(42는 오른쪽에 붙임.).
print '{:4d}'.format(42) #위와 같은데 최근의 방식.
print '%04d' % (42, ) #위와 같은데 남는자리는 공백이 아닌 0으로 채움.
print '{:04d}'.format(42),'\n' #최근의 방식.

print '%06.2f' % (3.141592653589793, ) #총 6자리중(.포함 6자리)에 소숫점부분은 2자리이며, 남는 부분은 0으로 채운다.
print '{:06.2f}'.format(3.141592653589793),'\n' #위와 같은데 최근의 방식.

print '%+d' % (42, ) #숫자를 출력하는데 양수인지 음수인지 부호까지 출력.
print '{:+d}'.format(42),'\n' #위와 같은데 최근의 방식.

print '% d' % (23, ) #음수 출력시 그대로, 양수 출력시 부호 자리를 한칸 띄워서 출력.
print '{: d}'.format(-23),'\n' #위와 같은데 최근의 방식.

print '{:=5d}'.format(-23),'\n' #공간을 할당해서 출력하는데, 반드시 부호는 맨 왼쪽, 숫자를 오른쪽에 맞춰서 정렬을 함.

person = {
    'first': 'Jean-Luc',
    'last': 'Picard',
}
print '{p[first]} {p[last]}'.format(p=person),'\n' #사전형식을 이런식으로 출력 가능함.

data = [4, 8, 15, 16, 23, 42]
print '{d[4]} {d[5]}'.format(d=data),'\n' #리스트도 이런식으로 출력 가능함.

class Plant(object):
    type = "tree"
print '{p.type}'.format(p=Plant()),'\n' #신기한 방법. 이런식으로 객체의 인스턴스를 만들어서 맴버를 출력 가능함.

class Plant(object):
    type = "tree"
    kinds = [{'name': "oak",}, {'name': "maple"}]
print '{p.type}: {p.kinds[0][name]}'.format(p=Plant()),'\n' #객체 내부의 리스트 내부의 사전 맴버들 출력 예제. 신기함.

from datetime import datetime
print '{:%Y-%m-%d %H:%M}'.format(datetime(2001, 2, 3, 4, 5)),'\n' #이런식으로 날짜 출력 가능.

class HAL9000(object):
    def __format__(self, format):
        if format == "open-the-pod-bay-doors":
            return "I'm afraid I can't do that."
        return "HAL 9000"
print '{:open-the-pod-bay-doors}'.format(HAL9000()) #내가 직접 .format을 정의하는 방법인듯.