안녕하세요. 오늘은 코드프렌즈를 통한 파이썬 공부 컨텐츠입니다. day5이고요. format함수, find함수, 대소문자, 출력 폭 등 다양한 파이썬 개념들에 대해 알아보겠습니다.
핵심 개념 정리
※ format() 함수로 문자열에 변수 삽입하기
- format() 함수는 문자열에 변수나 값을 삽입할 때 사용한다
- format 함수는 중괄호 { }를 사용해 문자열 내에서 값을 대체할 위치를 지정하고, 이후 함수에 전달된 인자들이 순서대로 해당 위치에 삽입된다.
- format() 함수는 동적인 문자열, 즉 변수 등에 의해 문자열이 변경될 수 있는 상황에 유용하게 사용된다.
greeting = "안녕하세요, {0}님! 오늘은 {1}일 입니다."
formatted_greeting = greeting.format("코드프렌즈", "화요일")
print(formatted_greeting) # "안녕하세요, 코드프렌즈님! 오늘은 화요일 입니다."
※ format() 함수 유의사항 - indexError
- format() 함수를 사용할 때, 문자열 내의 중괄호 {}의 개수와 format() 함수에 전달된 매개변수의 수가 일치하지 않으면 indexError 예외가 발생한다.
- indexError는 format() 함수에 전달된 매개변수보다 많은 중괄호가 문자열 내에 있어, 중괄호에 매핑할 값을 찾지 못할 때 발생한다.
indexerror 예시
greeting = "안녕하세요, {0}님! 오늘은 {1} 입니다. {2}"
try:
formatted_greeting = greeting.format("코드프렌즈", "화요일")
print(formatted_greeting)
except IndexError as e:
print(f"오류 발생: {e}")
IndexError 해결
- indexError를 방지하기 위해 문자열 내의 중괄호 개수와 format() 함수에 전달되는 매개변수의 수를 일치시켜야 한다.
# {2}를 제거하여 indexError 해결
greeting = "안녕하세요, {0}님! 오늘은 {1} 입니다."
formatted_greeting = greeting.format("코드프렌즈", "화요일")
print(formatted_greeting) # "안녕하세요, 김철수님! 오늘은 화요일 입니다."
※ format() 함수로 정수 출력하기
- format() 함수를 사용하면 문자열을 다양한 형식으로 출력할 수 있다.
- 출력할 데이터의 형식을 지정하는 것을 포매팅(formatting, 형식화)이라고 하며, 중괄호 { } 안에 :를 사용하여 출력 형식을 지정한다.
※ format() 함수 사용 예시
"{:포맷옵션}".format(값)
{ } : 자리 표시자로 값을 삽입하는 위치를 지정
: : 포맷의 옵션 지정
※ 정수 출력하기
- 정수를 출력할 때는 {:d}와 같이 중괄호의 : 오른쪽에 d를 사용한다.
- 만약 d를 생략하면, 파이썬은 값의 타입에 따라 자동으로 적절한 포맷을 사용한다.
정수 출력 formatting 예시
number = 123
# 정수 출력
formatted = "number: {:d}".format(number)
print(formatted) # "number: 123"
자동 타입 지정 formatting 예시
number = 123
# 정수 출력
formatted = "number: {}".format(number)
print(formatted) # "number: 123"
※ 출력 폭 지정하기
- 오른쪽에 숫자를 사용하면 출력되는 문자열의 폭을 지정한다.
- 예를 들어 {:5}는 출력되는 문자열의 폭을 5로 지정한다.
정수 출력 formatting 예시
number = 123
formatted = "number: {:5}".format(number) # 폭 5로 고정
# 123 앞에 공백 2개가 삽입됨
print(formatted) # "number: 123",
만약 폭을 채울 때 숫자 0을 사용하고 싶다면, 폭 앞에 0을 붙입니다.
정수 출력 formatting 예시
number = 123
formatted = "number: {:05}".format(number) # 폭 5로 고정
# 123 앞에 0이 2개가 삽입됨
print(formatted) # "number: 00123"
※ format() 함수로 부동 소수점 숫자 다루기
- 소수점을 포함한 실수형 데이터를 출력할 때는 {:f}를 사용한다.
- 중괄호 안의 f는 실수형 데이터를 출력할 때 사용하는 포맷 문자로 float(부동소수점)의 약자이다.
- 프로그래밍에서 부동소수점은 소수점의 위치가 고정되어 있지 않은 실수를 의미한다.
- : 오른쪽에 .숫자를 사용하면 소수점 이하 자릿수를 지정할 수 있다.
- 예를 들어 {:.2f}는 주어진 실수의 소수점 이하 두 자리까지만 출력한다.
실수형 출력 formatting 예시
float_number = 123.4567
formatted_float = "float_number: {:.2f}".format(float_number)
print(formatted_float) # "float_number: 123.46"
※ 소수점 이하 자릿수 제거하기
- 부동 소수점 숫자의 소수점 이하 자릿수를 제거하려면 :.0f를 사용한다.
number = 123.0
formatted_number = "{:.0f}".format(number) # 소수점 이하를 표시하지 않음
print(formatted_number) # "123"
※ 대소문자 변환 메소드 upper()와 lower()
- 문자열 "apple"을 "APPLE"로, "APPLE"을 "apple"로 한 번에 변환하려면 어떻게 해야 할까?
- 파이썬은 문자열의 대소문자를 변환하는 함수인 upper()와 lower()를 제공한다.
- upper() 메소드는 문자열의 모든 문자를 대문자로 변환하고, lower() 메소드는 모든 문자를 소문자로 변환한다.
대소문자 변환은 언제 필요할까?
프로그래밍에서 대소문자 변환은 정규화를 통해 사용자가 입력한 데이터를 표준 형식으로 변환할 때 주로 사용된다.
정규화란?
정규화는 데이터를 일관된 형태로 변환하는 과정을 뜻함
예를 들어 텍스트를 비교할 때 모든 문자를 소문자로 바꾸거나, 공백을 제거하는 등의 작업을 수행하는 것이 정규화입니다.
※ strip() 함수로 문자열 양옆의 공백 제거하기
- strip() 함수는 문자열의 양쪽 끝에 있는 공백(스페이스, 탭 등)을 제거한다.
- 주로 사용자로부터 입력받은 문자열에 불필요한 공백이 포함되어 있는 것을 방지하기 위해, strip() 함수를 사용하여 공백을 제거하고 입력값을 정규화한다.
text = " 안녕하세요, 반갑습니다! "
stripped_text = text.strip()
print(stripped_text) # "안녕하세요, 반갑습니다!"
※ 특정 문자 제거하기
- strip() 함수에 인자를 전달하면 문자열의 양쪽 끝에서 해당 문자를 제거할 수 있다.
text = "xxx안녕하세요, 반갑습니다!xxx"
stripped_text = text.strip('x')
# "안녕하세요, 반갑습니다!"
print(stripped_text)
※ 문자열 구성을 확인하는 isOOO() 함수들
- isalnum(), isalpha(), isdigit()와 같이 isOOO() 형태의 이름을 가지는 함수들은 문자열이 어떻게 구성되어 있는지 확인할 때 사용한다.
- 이 함수들은 문자열에 포함된 문자들이 특정 조건을 만족하는지 확인하고, 그 결과를 True 또는 False로 반환한다.
주요 함수들
isalnum(): 문자열이 알파벳 문자(A, a, B, b...)와 숫자(-1, 0, 3.1..)만 포함하고 있는지 확인
isalpha(): 문자열이 오직 알파벳 문자으로만 이루어져 있는지 확인
isdigit(): 문자열의 모든 문자가 숫자(0~9)로 이루어져 있는지 확인
text = "Python3"
print(text.isalnum()) # True
print(text.isalpha()) # False
print(text.isdigit()) # False
이 함수들은 언제 사용할까요?
- isOOO() 함수들은 주로 사용자 입력의 유효성을 검사하거나, 데이터를 정제할 때 사용된다.
text = input("닉네임을 숫자 또는 문자로 입력해 주세요: ")
if text.isalnum():
print("유효한 입력: 문자열에 문자 및/또는 숫자만 포함됩니다.")
else:
print("잘못된 입력: 문자열에 특수 문자 또는 공백이 포함되어 있습니다.")
※ find()와 rfind()로 특정 문자의 위치 찾기
- "banana"라는 문자열에서 "a"라는 문자가 몇 번째에 있는지 찾으려면 어떻게 할까?
- find()와 rfind() 함수는 문자열 내에서 특정 문자나 문자열의 위치를 찾는다.
※ find() 함수 사용법
- find() 함수는 문자열의 시작(왼쪽)부터 특정 문자 및 문자열을 찾아 그 위치의 인덱스(Index) 번호를 반환한다.
인덱스란? : 프로그래밍에서 인덱스는 순서를 나타내는 번호를 뜻합니다. 여러 문자로 구성된 문자열에서 각 문자는 인덱스를 가지고 있으며, 인덱스는 0부터 시작합니다. 예를 들어, 문자열 "hello"에서 "h"의 인덱스는 0, "e"의 인덱스는 1입니다.
- 문자열 내 공백도 인덱스에 포함되며, 문자열 내 찾는 문자열이 여러 번 나타날 경우 처음 나타나는 위치의 인덱스를 반환한다.
- 찾는 문자나 문자열이 없으면 -1을 반환한다.
text = "파이썬 수업, 수업은 재미있다"
# text 문자열 변수의 시작부터 "수업" 문자열의 시작 위치 반환
position = text.find("수업")
# 왼쪽에서 첫 번째 "수업" 문자열의 시작 위치 반환
print(position)
위 코드에서 find() 함수는 문자열 text에서 "수업" 문자열을 왼쪽부터 찾는다.
"수업" 문자열은 4번째 인덱스부터 시작하므로, find() 함수는 "수업" 문자열의 시작 위치인 4를 반환함
※ rfind() 함수 사용법
- rfind() 함수는 문자열의 오른쪽(끝)부터 특정 문자 및 문자열을 찾아 그 위치의 인덱스를 반환한다.
- 찾는 문자나 문자열이 없으면 -1을 반환한다.
text = "파이썬 수업, 수업은 재미있다"
# text 문자열 변수의 시작부터 "수업" 문자열의 시작 위치 반환
position = text.rfind("수업")
# 오른쪽에서 첫 번째 "수업" 문자열의 시작 위치 반환
print(position)
rfind() 함수는 문자열 text에서 "수업" 문자열을 오른쪽부터 찾는다.
"수업" 문자열은 8번째 인덱스부터 시작하므로, rfind() 함수는 오른쪽부터 탐색했을 때 "수업" 문자열의 시작 위치인 8을 반환한다.
수고하셨습니다.
파이썬 day2: type함수, 숫자와 문자열, 따옴표, 이스케이프 등
안녕하세요. 오늘은 코드프렌즈를 통한 파이썬 공부 콘텐츠입니다. day2이고요. type함수, 숫자와 문자열, 따옴표, 이스케이프 등 다양한 파이썬 개념에 대해 공부해 보겠습니다. 배운 내용 핵심
cybercity.tistory.com
파이썬 day4: 정수형, 실수형, 복합대입연산자, 연산자 우선순위 등
안녕하세요. 오늘은 코드프렌즈를 통한 파이썬 공부 컨텐츠입니다. day4이고요. 정수형, 실수형, 복합대입연산자, 연산자 우선순위 등 다양한 파이썬 개념에 대해 알아보겠습니다. 핵심 개념 정
cybercity.tistory.com
사이버펑크 배경화면 모음 (Cyberpunk Wallpapers for PC & ipad)
안녕하세요. 오늘은 사이버펑크 배경화면 모음을 가져왔습니다. 개인소장용으로 사용해 주세요! 2차 가공, 도용, 무단배포는 모두 금지입니다. Here are high-quality cyberpunk wallpapers for PC & Ipad. Unath
cybercity.tistory.com
'프로그래밍 > 파이썬' 카테고리의 다른 글
파이썬 day6: else조건문, pass, 항상 false, notimplementederror 등 (0) | 2025.05.04 |
---|---|
파이썬 day4: 정수형, 실수형, 복합대입연산자, 연산자 우선순위 등 (0) | 2025.03.15 |
파이썬 day3: 인덱싱, 슬라이싱, try...except, 문자열 반복 등 (0) | 2025.03.09 |
파이썬 day2: type함수, 숫자와 문자열, 따옴표, 이스케이프 등 (0) | 2025.03.09 |
파이썬 day1: len함수, 들여쓰기, input함수, 반복문 등 (0) | 2025.03.03 |