문자열 포맷 코드
동일한 문자열은 그대로 사용하면서 문자열 안에 필요한 부분만을 변경하고자 한다면 문자열 포맷 코드를 사용하면 됩니다.
문자열 안에 정수나 문자 같은 다른 타입의 값을 입력하고자 할 때 다음과 같은 타입에 해당하는 포맷을 사용하여야 합니다.
예)
현재 온도를 1분마다 “현재 온도는 24도입니다.”로 출력한다고 할 때 숫자 24부분만 바뀌고 나머지 문자들은 바뀌지 않습니다. 이와 같이 문자열에서 특정 위치에 문자를 넣고자 할 때 사용합니다.
Input: “현재 온도는 %d도입니다.” % 24
Output: 현재 온도는 24도입니다.
코드 | 설명 |
%s | 문자열 |
%c | 문자 1개 |
%d | 정수 |
%f | 부동소수 |
%o | 8진수 |
%x | 16진수 |
%% | Literal %(문자 ‘%’ 자체) |
1. 숫자 바로 대입하기 : 문자열 안에 숫자를 넣고 싶으면 넣고 싶은 자리에 %d 문자를 넣어주고, 삽입할 숫자를 %문자 다음에 써 넣어주면 됩니다.
Input: “I eat %d apples.” % 3
Output: I eat 3 apples.
2. 문자열 바로 대입하기 : 문자열 안에 문자열을 넣고 싶으면 넣고 싶은 자리에 %s를 사용하면 됩니다.
Input: “I eat %s apples.” % “five”
Output: I eat five apples.
3. 숫자값을 나타내는 변수로 대입하기 : 숫자 바로 대입하기와 방법은 동일합니다. 단지, 숫자 3부분에 넣고 싶은 정수형 변수를 넣어주면 됩니다.
Input: number = 3
“I eat %d apples.” % number
Output: I eat 3 apples.
4. 2개 이상의 값을 넣기
Input: number = 10
day = “three”
“I eat %d apples. so I was sick for %s days.” % (number, day)
Output: I eat 10 apples. so I was sick for three days.
5. %d와 %를 같이 사용할 때 %%를 사용
Input: “Error is %d%%.” % 99
Output: Error is 99%.
< 포맷 코드의 여러가지 표현들 >
1. 정렬과 공백
총 10개의 문자를 입력할 수 있는 공간에 “python”문자열을 오른쪽으로 정렬하려면 “%10s”를 사용하면 됩니다. “python”문자 앞에 5개의 공백문자가 자동으로 입력됩니다.
Input: “%10s” % “python”
Ouput: “ python”
총 10개의 문자를 입력할 수 있는 공간에 “python”문자열을 왼쪽으로 정렬하려면 “%-10s”를 사용하면 됩니다. “python”문자 뒤에 5개의 공백이 자동으로 입력됩니다.
Input: “%-10s” % “python”
Output: “python “
2. 소수점 표현
문자열에 실수를 입력할 때는 “%f”를 사용하면 되는데 정렬방법을 사용하여 출력을 보기좋게 표현할 수 있습니다.
실수에서 정수부분의 표현 길이와 소수점 아래 표현 길이를 정할 수 있습니다. 실수 3.141592를 넣고자 할 때 정수 부분을 10개의 문자길이로 표현하고 소수점 아래는 2개 자리까지만 사용하고자 한다면 “%10.2f”를 사용하면 됩니다.
Input: real1 = “%10.2f” % 3.141592
real2 = “%10.2f” % 1234567890.3838
print(real1)
print(real2)
Output: 3.14”
1234567890.38
3. format() 함수 사용
format함수를 사용해도 문자포맷을 사용한 것처럼 표현할 수 있습니다.
숫자 입력
Input: “I eat {0} apples”.format(3)
Output: I eat 3 apples.
문자열 입력
Intput: “I eat {0} apples”.format(“five”)
Output: I eat five apples.
2개 이상값 입력
Input: “I ate {0} apples. so I was sick for {1} days.”.format(3, “three”)
Output: I ate 3 apples. so I was sick for three.
이름으로 넣기
Input: “I ate {number} apples. so I was sick for {days} days.”.format(number=3, days=“three”)
Output: I ate 3 apples. so I was sick for three
왼쪽 정렬
Input: “{0:<10}”.format(“python”)
Output: “python “
오른쪽 정렬
Input: “{0:>10}”.format(“python”)
Output: “ python”
가운데 정렬
Input: “{0:^10}”.format(“hi”)
Output: “ hi “
공백 채우기
Input: “{0:=^10}”.format(“hi”)
Output: “====hi====“
소수점 표현하기
Input: “{0:0.2f}”.format(3.141592)
Output: “3.14“
< 문자열 관련 함수 >
문자 개수 세기(count)
문자열에서 지정한 문자열이나 문자의 개수를 카운트합니다. “python”문자열에서 ‘h’문자의 개수를 카운트합니다.
str1 = "python"
str1.count('h')
Output:
1
위치 알려주기(find)
문자열에서 찾고자 하는 특정 문자나 문자열이 존재하면 그 위치를 출력해줍니다. 찾고자 하는 문자열이나 문자가 없으면 -1을 출력합니다.
str1 = "Python is the best programming language"
str1.find('best')
Output:
14
str1 = "Python is the best programming language"
str1.find('apple')
Output:
-1
위치 알려주기(index)
문자열에서 찾고자 하는 문자열이나 문자의 위치를 출력해줍니다. 문자열에 찾을 문자나 문자열이 없으면 오류가 발생합니다.
str1 = "Python is the best programming language"
str1.index('best')
Output:
14
문자열 삽입(join)
문자열 사이에 특정 문자나 문자열을 넣고자 할 때 사용합니다.
",".join('language')
Output:
l,a,n,g,u,a,g,e
소문자를 대문자로 바꾸기(upper)
str1 = "python"
str1.upper()
Output:
PYTHON
대문자를 소문자로 바꾸기(lower)
str1 = "PYTHON"
str1.lower()
Output:
python
왼쪽 공백 지우기(lstrip)
str1 = " python"
str1.lstrip()
Output:
‘python’
오른쪽 공백 지우기(rstrip)
str1 = " python "
str1.rstrip()
Output:
‘ python’
양쪽 공백 지우기(strip)
str1 = " python "
str1.split()
Output:
‘python’
문자열 바꾸기(replace)
str1 = "Python is the worst programming language"
str1.replace("worst", "best")
Output:
Python is the best programming language
문자열 나누기(split)
str1 = "Python is the best programming language"
str1.split()
Output:
['Python', 'is', 'the', 'best', 'programming', 'language']
'프로그래밍 언어 > 파이썬 (Python)' 카테고리의 다른 글
[파이썬 학습] : 튜플(Tuples)과 딕셔너리(Dictionaries) (0) | 2022.01.28 |
---|---|
[파이썬 학습] : 리스트 자료형 (0) | 2022.01.27 |
[파이썬 학습] : 문자열 자료형 (0) | 2022.01.25 |
[파이썬 학습] : (변수와 데이터 타입(정수형)) (0) | 2022.01.24 |
[파이썬 학습] : (키워드 및 주석) (0) | 2022.01.24 |