곰퓨타의 SW 이야기

[python] 문자열 포매팅 뿌시기! 본문

TIL/코테개념_python

[python] 문자열 포매팅 뿌시기!

곰퓨타 2021. 1. 3. 18:31

문자열에 대한 정리 마지막으로 포매팅을 해보고자 한다..!

이는 코테에서 사용할 지는 잘 모르겠지만 C언어에서 %d는 정수출력, %c,%s는 문자출력을 담당했던것과 같이 파이썬만의 것 또한 익혀보고 싶기 때문에 가져오게 된 주제이다.

 

역시 이번 글도 내 기준 이해가 제일 잘되는 점프 투 파이썬❣️을 많이 참고하였다.

wikidocs.net/13#_15

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

문자열 포매팅

문자열 포맷코드

점프 투 파이썬에서 제공해주는 포맷코드 표이다❣️

 

이 포맷코드들 중 가장 신기한 것은 %s 인데 , 이것은 사실 뒤에 오는 것에 맞추어 변환해 넣을 수 있도록 해준다..!

(역시 파이썬...너무 똑똑하다 ....👀)

 

문자열 포매팅 따라하기

1. 숫자 바로 대입
>>> "I eat %d apples." % 3
'I eat 3 apples.'


2. 문자열 바로 대입
>>> "I eat %s apples." % "five"
'I eat five apples.'


3. 숫자 값을 나타내는 변수로 대입
>>> number = 3
>>> "I eat %d apples." % number
'I eat 3 apples.'


4. 2개 이상 값 넣기
>>> number = 10
>>> day = "three"
>>> "I ate %d apples. so I was sick for %s days." % (number, day)
'I ate 10 apples. so I was sick for three days.'

 

포맷코드와 숫자를 함께 이용하기

1. 정렬과 공백
# 오른쪽 정렬
>>> "%10s" % "hi"
'        hi'

# 왼쪽 정렬
>>> "%-10sjane." % 'hi'
'hi        jane.'


2. 소수점 표현하기

# 소수점 넷째자리까지 표현하고 싶은 경우 
>>> "%0.4f" % 3.42134234
'3.4213'

# 전체 길이가 10개인 문자열 공간에서 오른쪽으로 정렬하고 소수점 넷째자리까지 표현하고 싶은 경우 
>>> "%10.4f" % 3.42134234
'    3.4213'

 

format함수를 사용한 포매팅

문자열 포매팅 따라하기에 있었던 것을 format함수로 표현하면 다음과 같다.

1. 숫자 바로 대입
>>> "I eat {0} apples".format(3)
'I eat 3 apples'


2. 문자열 바로 대입
>>> "I eat {0} apples".format("five")
'I eat five apples'


3. 숫자 값을 나타내는 변수로 대입
>>> number = 3
>>> "I eat {0} apples".format(number)
'I eat 3 apples'


4. 2개 이상의 값 넣기
>>> number = 10
>>> day = "three"
>>> "I ate {0} apples. so I was sick for {1} days.".format(number, day)
'I ate 10 apples. so I was sick for three days.'

 

 

다음은 새롭게 format으로 더할 수 있는 기능이다.

....이거이거 정말 신기한 것 같다..

 

1. 이름으로 넣기

1. 이름으로 넣기
>>> "I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)
'I ate 10 apples. so I was sick for 3 days.'


2. 인덱스와 이름을 혼용해서 넣기
>>> "I ate {0} apples. so I was sick for {day} days.".format(10, day=3)
'I ate 10 apples. so I was sick for 3 days.'

 

2. 정렬

1. 왼쪽 정렬
>>> "{0:<10}".format("hi")
'hi        '


2. 오른쪽 정렬
>>> "{0:>10}".format("hi")
'        hi'


3. 가운데 정렬
>>> "{0:^10}".format("hi")
'    hi    '

 

3. 공백 채우기

문자열 정렬 시 무엇으로 채울지 표현이 가능하다.

{0:=^10}은 ^가 가운데 정렬을 의미하므로 가운데 정렬을 하되, =로 빈공간을 채운다는 의미이다.

{0:!<10}은 <가 왼쪽 정렬을 의미하므로 왼쪽 정렬을 하되, !로 빈공간을 채운다는 의미이다.

>>> "{0:=^10}".format("hi")
'====hi===='
>>> "{0:!<10}".format("hi")
'hi!!!!!!!!'

 

4. 소수점 표현하기

{0:0.4f} 의 의미는 0 번째 인덱스에는 0.4f의 형태로 표현한다. 0.4f는 소수점 넷째자리까지만 표현하는 방법이므로, y를 이러한 방법으로 나타내라. 라는 의미인 것 같다.

 

{0:10.4f}의 의미는 0번째 인덱스에는 10.4f의 형태로 표현한다. 10.4f는 자릿수로 10자리로 맞추고 오른쪽 정렬을 하되, 소수점 넷째자리까지만 표현하는 방법이므로, 이 방법으로 y를 나타내라. 라는 뜻인 것 같다.

>>> y = 3.42134234
>>> "{0:0.4f}".format(y)
'3.4213'

>>> "{0:10.4f}".format(y)
'    3.4213'

 

5. { 또는 } 문자 표현하기

{{ }} 처럼 2개를 사용하면 된다!

>>> "{{ and }}".format()
'{ and }'

 

 

f 문자열 포매팅 (3.6 이상의 버전)

f 접두사를 작성하면 format과 같은 기능을 수행할 수 있다.

 

name,age 변수 값을 생성하고 이 값을 참조하는 것이다.
>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name}입니다. 나이는 {age}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'

 

문자열 안에서 변수의 +,- 수식을 사용할 수 있다.
>>> age = 30
>>> f'나는 내년이면 {age+1}살이 된다.'
'나는 내년이면 31살이 된다.'

 

딕셔너리의 Key값을 통해 value에 접근이 가능하다.
>>> d = {'name':'홍길동', 'age':30}
>>> f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'

 

정렬
>>> f'{"hi":<10}'  # 왼쪽 정렬
'hi        '
>>> f'{"hi":>10}'  # 오른쪽 정렬
'        hi'
>>> f'{"hi":^10}'  # 가운데 정렬
'    hi    '

 

공백 채우기
>>> f'{"hi":=^10}'  # 가운데 정렬하고 '=' 문자로 공백 채우기
'====hi===='
>>> f'{"hi":!<10}'  # 왼쪽 정렬하고 '!' 문자로 공백 채우기
'hi!!!!!!!!'

 

소수점 표현
>>> y = 3.42134234
>>> f'{y:0.4f}'  # 소수점 4자리까지만 표현
'3.4213'
>>> f'{y:10.4f}'  # 소수점 4자리까지 표현하고 총 자리수를 10으로 맞춤
'    3.4213'

 

{} 사용
>>> f'{{ and }}'
'{ and }'

 

이제 문자열은 뿌셨으므로, 그동안 블로그에 작성하였던 글들을 총 복습하는 시간을 가져보아야 겠다..⭐️

(아직 파이썬 새내기로, 파이썬을 가지고 코테에 덤비기 시작해서 보게 된 코딩테스트가 얼마 남지 않았기 때문이다..둑흔둑흔❣️)

Comments