숫자와 문자열의 다양한 기능
문자열의 format() 함수
- format 함수는 문자열이 가지고 있는 함수 이다. 이 함수를 이용하면 숫자와 문자열을 다양한 형태로 출력할 수 있다.
- 중괄호{}를 포함한 문자열 뒤에 마침표를 찍고 format 함수를 사용하는데 중괄호의 개수와 format 함수 괄호 안 매개변수는 반드시 같아야 한다. 중괄호 기호의 개수가 format 함수의 매개변수 개수보다 많으면 IndexError가 발생한다.
"{}".format(10)
"{} {}".format(10, 20)
"{} {} {} {} {}".format(101, 202, 303, 404, 505)
- 이러한 형태로 함수를 사용하면 앞쪽에 있는 문자열의 중괄호 기호가 format 함수 괄호 안에 있는 매개변수로 차례대로 대치되면서 숫자가 문자열이 되는 것이다.
# format() 함수로 숫자를 문자열로 변환하기
string _a = "{}".format(10)
# 출력하기
print(string_a)
print(type(string_a))
# 실핼 결과 <class 'str'> 10
대소문자 바꾸기: upper()와 lower()
- upper 함수는 문자열의 알파벳을 대문자로, lower 함수는 문자열의 알파벳을 소문자로 변경한다.
- upper 함수의 예시로 변수 a에 할당된 문자열의 알파벳을 모두 대문자로 변경한다.
a = "Hello Python Programming!"
a.upper()
# 실핼 결과
# 'HELLO PYTHON PROGRAMMING!'
- lower 함수의 예시로 변수 a에 할당된 문자열의 알파벳을 모두 소문자로 변경한다.
a.lower()
# 실행 결과
# 'hello python programming!'
문자열 양옆의 공백 제거하기
- strip 함수는 문자열 양옆의 공백을 제거한다.
lstrip() 함수는 문자열의 왼쪽 공백을 제거한다.
rstrip() 함수는 문자열의 오른쪽 공백을 제거한다. - 이때 공백이란 뛰어쓰기, 탭, 줄바꿈을 모두 포함한다.
문자열의 구성 파악하기
- 문자열이 소문자로만 구성되어 있는지, 알파벳으로만 구성 되어 있는지, 숫자로만 구성되어 있는지 등을 확인할 때는 is로 시작하는 이름의 함수를 사용한다.
- isalnum(): 문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인한다.
isalpha(): 문자열이 알파벳으로만 구성되어 있는지 확인한다.
isidentifier(): 문자열리 식별자로 사룔할 수 있는 것인지 확인한다.
isidcimal(): 문자열이 정수 형태인지 확인한다.
isdigit(): 문자열이 숫자로 인식될 수 있는 것인지 확인한다.
isspace(): 문자열이 공백으로만 구성되어 있는지 확인한다.
islower(): 문자열이 소문자로만 구성되어 있는지 확인한다.
isupper()문자열이 대문자로만 구성되어 있는지 확인한다.- 출력은 True(맞다) 또는 False(아니다)라고 나오는데 이를 불(boolean)이라 부른다.
print("TrainA10".isalnum())
# 실행 결과 True
print("10".isdigit())
# 실행 결과 True
문자열 찾기: find()와 rfind()
- 문자열 내부에 특정 문자가 어디에 위치하는지 확인할 때 find 함수와 rfind 함수를 사용한다.
- find 함수: 왼쪽부터 찾아서 처음 등장하는 위치를 찾는다.
- 문자열 내부에 어떤 문자열이 있는지 확인할 때 사용한다.
- rfind 함수: 오른쪽부터 찾아서 처음 등장하는 위치를 찾는다.
# 예시)
# "안녕안녕하세요"라는 문자열에는 "안녕"이라는 문자열이 두개 있다 따라서 왼쪽부터 찾았을 때와 오른쪽부터 찾았을 때의 위치가 다르다.
output_a = "안녕안녕하세요".find("안녕")
print(output_a)
# 실행 결과
0
output_b = "안녕안녕하세요".rfind("안녕")
print(output_b)
# 실행 결과
2
- 문자열의 가장 앞글자는 0번째라고 한다. 처음 "안녕"은 0번째에 있는 것이고 2번째 "안녕"은 2번째부터 등장하는 것이다 따라서 실행 결과로 find는 0 rfind는 2가 나온 것이다.
문자열 in 연산자
- 문자열 내부에 어떤 문자열이 있는지 확인 하려면 in 연산자를 사용한다. 출력은 True 또는 False라고 나온다.
print("안녕" in "안녕하세요")
# 실행 결과
True
# 예시에서 볼 수 있듯이 단순한 형태로 사용한다.
# "안녕하세요" 문자열에 "안녕"을 포함하고 있으므로 True라는 결과가 나온다.
print("잘자" in "안녕하세요")
# 실행 결과
False
# 두번째 예시에서는 "안녕하세요"라는 문자열에 "잘자"는 포함하고 있지 않으므로 False라는 결과가 나온다.
문자열 자르기: split()
- 문자열을 특정한 문자로 자를 때 split 함수를 사용한다.
a = "10 20 30 40 50".split(" ")
print(a)
# 결과 실행
['10', '20', '30', '40', '50']
- 실핼 결과로 리스트가 나온다.
f-문자열(f-strings)
- f-문자열은 문자열 앞에 f를 붙여 만들며 문자열 내부에 중괄호{}를 사용해 표현식을 직접 삽입할 수 있다. 이때 중괄호 안의 표현식은 실행 시 평가되어 그 결과가 문자열에 포함된다.
# format 함수와 비교해서 살펴보자
"{}".format(10)
# 결과 실행
'10'
f'{10}'
# 결과 실행
'10'
# {}괄호 안에는 어떤 표현식이든 넣을 수 있다.
f"3 + 4 = {3 + 4}"
# 결과 실행
'3 + 4 = 7'
f"""1 + 2 = {1 + 2}
2 + 3 = {2 + 3}
3 + 4 = {3 + 4}"""
# 결과 실핼
'1 + 2 = 3\n 2 + 3 = 5\n 3 + 4 = 7'
- f-문자열이 format() 함수보다 간단하고 직관적이다.