[이전글]
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}'
코드와 같은 문자열을 그대로 출력하고싶을 때는 중복으로 때려박으면 되는 것 같다.
[다음글]
'공부 > 전자컴퓨터공학' 카테고리의 다른 글
프로그램(Program)이란? 웹(Web)이란?웹 개발, 웹 디자인을 위한 기초 지식 쌓기 (0) | 2024.04.30 |
---|---|
컴퓨터(Computer)란? 웹 개발, 웹 디자인을 위한 기초 지식 쌓기 web design web development (0) | 2024.04.29 |
Do it! 점프 투 파이썬 - 2장. 파이썬 프로그래밍의 기초, 자료형 (3) (1) | 2024.04.26 |
Do it! 점프 투 파이썬 - 2장. 파이썬 프로그래밍의 기초, 자료형 (1) (0) | 2024.04.24 |
Do it! 점프 투 파이썬 - 1장. 파이썬이란 무엇인가? (1) | 2024.04.09 |