공부/전자컴퓨터공학

Do it! 점프 투 파이썬 - 2장. 파이썬 프로그래밍의 기초, 자료형 (2)

AhJustC 2024. 4. 25. 16:22
반응형

[이전글]

 

Do it! 점프 투 파이썬 - 2장. 파이썬 프로그래밍의 기초, 자료형 (1)

[이전글] Do it! 점프 투 파이썬 - 1장. 파이썬이란 무엇인가?부의 추월차선을 읽은 후 지금 나는 어떤 걸 도전해 볼 수 있을까 고민을 많이 하게 되었다. 투자 비용은 적으면서 나중에 내 피와 살

findahobby.tistory.com

 

2.7 문자열 포매팅이란?

문자열 포매팅(string formating) 이란 문자열 안의 특정한 값을 바꿔야 할 경우가 있을 때 이것을 가능하게 해주는 것이다.

어릴적 봤던 스펀지에서 제시 문자에 들어가있는 '네~모' 다! 할 때 그 네모의 역할로 보면 될 것 같다.

 

2.8 문자열 포매팅 실습

숫자 대입
>>> "%d드론은 양아치지"%4
'4드론은 양아치지'

원하는 위치에 문자열 포맷코드 %d 를 넣어주고, 삽입하고 싶은 숫자는 마지막에 %다음으로 써준다.

 

문자 대입
>>> "%s드론은 양아치지"%"사"
'사드론은 양아치지'

원하는 위치에 문자열 포맷코드 %s 를 넣어주고, 샆입하고 싶은 문자는 마지막에 %다음으로 써준다.

이 때 문자의 경우는 따옴표를 사용해줘야 오류가 나지 않는다!

 

숫자를 변수로 대입
>>> number=4
>>> "장난하냐 %d드론."%number
'장난하냐 4드론.'

숫자 대신 number 라는 변수를 넣어주었으며 결과는 숫자 대입한 것과 똑같다.

 

2개 이상의 값 넣기
>>> unit=4
>>> building="SpawningPool"
>>> "%d드론 %s 입니다!"%(unit, building)
'4드론 SpawningPool 입니다!'

각각의 문자열에 해당하는 변수 설정 후 % 뒤 괄호에 해당하는 변수를 입력해주면 지정해뒀던 값이 출력된다.

사실 아직까지는 왜 문장에 직접 쓰지 않고 손이 더 가는 이방법을 쓰는걸까? 라고 생각이 들긴하지만 특정값만 바꾸는 작업이 반복적으로 행해질 수 있다면 편하긴 하겠다. 정도로 예상만 하고있을 뿐이다..!

2.9 문자열 포맷코드

위에서 본 정수, 문자 포맷코드 외에 다른 포맷코드도 있으니 참고하면 될 것 같다.

%s - 문자열(string)

%c - 문자 1개(character)

%d - 정수(integer)

%f - 부동소수(floating-point

%o - 8진수

%x - 16진수

%% - Literal %, % 문자 자체로 사용 시

 

2.10 포맷코드와 숫자 함께 사용

정렬과 공백
>>> "%10s"%"GG"
'        GG'
>>> "%-10s"%"GG"
'GG        '

 

%10s 는 전체 문자 길이가 10인 문자열에서 대입되는 값을 오른쪽 정렬후 공백표시, 반대로 %-10s는 왼쪽으로 정렬 후 나머지 공백표시 를 한다.

소수점 표현
>>> "%.4f"%12.3456789
'12.3457'
>>> "%10.4f"%12.3456789
'   12.3457'

 

소수점 앞의 숫자는 전체 문자열의 공백 수(위의 문장은 0이 생략되어 있다.) 이며 소슷점 뒤의 숫자는 몇번째 자리까지 표시하냐를 나타낸다. 

 

2.11 format 함수를 사용한 포매팅

문자열에 firmat 함수를 사용하면 더 발전된 스타일로 문자열 포냇을 지정할 수 있다.

위에서 그냥 문자열로 대입했던 예제들을 통해 수정해보자

숫자 대입
"{0}드론은 양아치지".format(4)
'4드론은 양아치지'

 

문자 대입
>>> "{0}드론은 양아치지".format("사")
'사드론은 양아치지'

 

숫자를 변수로 대입
>>> number=4
>>> "장난하냐 {0}드론".format(number)
'장난하냐 4드론'

 

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

계속 오류가 나서 부득이하게 참고서 예제로 대체 하였다. 

여러개인 경우는 {0}, {1} 항목을 넣으면 되나보다. 

 

이름으로 넣기

{0}, {1} 대신 {name} 형태로 사용하는 방법이다. 단 format함수에는 반드시 name=value 형태로 입력해주어야 한다.

>>> "{drone}드론은 {victory}% 승률을 자랑하죠".format(drone=4, victory=100)
'4드론은 100% 승률을 자랑하죠'

 

인덱스와 이름 혼용사용

{0}, {name}을 혼용해서 같이 쓸 수 있다.

대신 format 함수에 인덱스 값이 먼저 들어가야 하는 것 같다.

>>> "{drone}드론은 {0}% 승률을 자랑하죠".format(100, drone=4)
'4드론은 100% 승률을 자랑하죠'

 

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

 

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

 

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

확실히 %가 들어가있던 문자열을 사용하는 것 보다 format 함수를 사용하여 정렬하니 화살표 방향으로 직관적으로 보이고 좀 더 유용하게 쓰일 수 있을 것 같다.

반응형
공백 채우기

:와 방향 사이에 문자를 넣어주면 공백으로 남기는 것이 아닌 해당 문자로 공백을 다 채워준다. 신기방기!

>>> "{0:+<10}".format("GG")
'GG++++++++'
>>> "{0:=>10}".format("GG")
'========GG'
>>> "{0:?^10}".format("GG")
'????GG????'

 

소수점 표현하기
>>> x=1.1111111111
>>> "{0:.3f}".format(x)
'1.111'
>>> "{0:^10.3f}".format(x)
'  1.111   '

확실히 format 함수를 사용하니 직관적으로 보여 해석이 수월한 것 같다.

 

중괄호 문자 표현하기
>>> "{{what}}".format()
'{what}'

코드와 같은 문자열을 그대로 출력하고싶을 때는 중복으로 때려박으면 되는 것 같다.

[다음글]

 

Do it! 점프 투 파이썬 - 2장. 파이썬 프로그래밍의 기초, 자료형 (3)

[이전글] Do it! 점프 투 파이썬 - 2장. 파이썬 프로그래밍의 기초, 자료형 (2)[이전글] Do it! 점프 투 파이썬 - 2장. 파이썬 프로그래밍의 기초, 자료형 (1)[이전글] Do it! 점프 투 파이썬 - 1장. 파이썬

findahobby.tistory.com

 

반응형