1. Introduction
문자열에 대해서 살펴보겠습니다. 이 예제에서는 문자열 정리, 변환, 검색, 수정, 조합 등의 다양한 함수를 활용했습니다.
문자열 기본 사항.
1) 문자열에는 따옴표가 붙습니다. "문자열"
2) 한 글자뿐이어도 문자'열'입니다. "문"
3) 따옴표는 큰 따옴표, 작은 따옴표 모두 허용됩니다. "큰 따옴표", '작은 따옴표'
4) 문자열을 수정할 수 없습니다....라는데? 아니 문자열을 작성하다가 틀릴 수도 있지.. 그럼 어떻게 해...?
^.^; ( 이 부분은 추가 설명이 필요함.)
# 중/고급 과정 : 텍스트 파일 처리 - 외부 텍스트 파일로부터 대량의 문자열을 받아서 대량의 문자열을 처리하는 방법.
다음 코드에서는 사용자 입력을 받아 문자열을 여러 가지 방식으로 처리합니다. 문자열 함수 일부만 살펴봅니다.
2. Code
# 문자열 프로그램이어서 import가 없음. ^.^;
# Python에 내장된(=코어) 것만으로도 충분히 자체 해결 가능.
# 사용자 입력을 받음
user_input = " Python Programming is FUN and POWERFUL! "
# 1. 공백 제거
cleaned_input = user_input.strip()
# 2. 모든 문자를 소문자로 변환
lowered_input = cleaned_input.lower()
# 3. 첫 글자만 대문자로 변환
capitalized_input = lowered_input.capitalize()
# 4. 단어별 첫 글자를 대문자로 변환
title_input = lowered_input.title()
# 5. 특정 단어 치환
replaced_input = title_input.replace("Fun", "Exciting")
# 6. 단어 리스트로 변환
words = replaced_input.split()
# 7. 문자열 결합
joined_string = "-".join(words)
# 8. 특정 문자열 존재 여부 확인
contains_python = "python" in lowered_input
# 9. 특정 문자열의 위치 찾기
index_fun = cleaned_input.find("FUN")
# 10. 대문자/소문자 변환
swapped_case = cleaned_input.swapcase()
# 결과 출력 코드
print("Original:", user_input)
print("Cleaned:", cleaned_input)
print("Lowered:", lowered_input)
print("Capitalized:", capitalized_input)
print("Title:", title_input)
print("Replaced:", replaced_input)
print("Words List:", words)
print("Joined:", joined_string)
print("Contains 'python':", contains_python)
print("Index of 'FUN':", index_fun)
print("Swapped Case:", swapped_case)
3. Result
# 문자열 예제이므로 그림이 아닌..
Original: Python Programming is FUN and POWERFUL!
Cleaned: Python Programming is FUN and POWERFUL!
Lowered: python programming is fun and powerful!
Capitalized: Python programming is fun and powerful!
Title: Python Programming Is Fun And Powerful!
Replaced: Python Programming Is Exciting And Powerful!
Words List: ['Python', 'Programming', 'Is', 'Exciting', 'And', 'Powerful!']
Joined: Python-Programming-Is-Exciting-And-Powerful!
Contains 'python': True
Index of 'FUN': 22
Swapped Case: pYTHON pROGRAMMING IS fun AND powerful!
4. Notes
파이썬에서 문자열을 다룰 때 자주 사용되는 주요 함수들을 정리해 보겠습니다. 실제로 활용하려면 세부적인 실습 과정이 필요합니다만 여기서는 간단한 핵심만 정리합니다. 세부 내용은 참고 문헌을 참고하세요. ^.^;
1. 문자열 조작 함수
함수 - 설명 - 사용 예시 ( 도표 편집은 추후 업데이트에서. ^.^;)
lower() | 모든 문자를 소문자로 변환 | "Hello".lower() → 'hello' |
upper() | 모든 문자를 대문자로 변환 | "hello".upper() → 'HELLO' |
title() | 각 단어의 첫 글자를 대문자로 변환 | "hello world".title() → 'Hello World' |
strip() | 문자열의 앞뒤 공백 제거 | " hello ".strip() → 'hello' |
replace(a, b) | 특정 문자열을 다른 문자열로 치환 | "hello".replace("h", "H") → 'Hello' |
split(sep) | 특정 구분자를 기준으로 문자열을 나눔 | "apple,banana".split(",") → ['apple', 'banana'] |
2. 문자열 검색 함수
함수 - 설명 - 사용 예시
find(sub) | 특정 문자열의 첫 번째 위치 반환 (없으면 -1) | "hello".find("l") → 2 |
index(sub) | 특정 문자열의 첫 번째 위치 반환 (없으면 오류) | "hello".index("l") → 2 |
count(sub) | 특정 문자열의 개수 반환 | "banana".count("a") → 3 |
startswith(prefix) | 특정 문자열로 시작하는지 확인 | "hello".startswith("he") → True |
endswith(suffix) | 특정 문자열로 끝나는지 확인 | "hello".endswith("o") → True |
3. 문자열 정렬 및 포맷 함수
함수 - 설명 - 사용 예시
join(iterable) | 문자열을 특정 구분자로 연결 | ",".join(["a", "b", "c"]) → 'a,b,c' |
format() | 문자열 포맷팅 | "Hello, {}".format("Alice") → 'Hello, Alice' |
ljust(n) | 지정된 길이만큼 좌측 정렬 (공백 추가) | "hi".ljust(5) → 'hi ' |
rjust(n) | 지정된 길이만큼 우측 정렬 (공백 추가) | "hi".rjust(5) → ' hi' |
center(n) | 지정된 길이만큼 중앙 정렬 (공백 추가) | "hi".center(5) → ' hi ' |
4. 문자열 판별 함수
함수 - 설명 - 사용 예시
isalnum() | 문자와 숫자로만 구성되었는지 확인 | "abc123".isalnum() → True |
isalpha() | 문자로만 구성되었는지 확인 | "abc".isalpha() → True |
isdigit() | 숫자로만 구성되었는지 확인 | "123".isdigit() → True |
islower() | 모든 문자가 소문자인지 확인 | "hello".islower() → True |
isupper() | 모든 문자가 대문자인지 확인 | "HELLO".isupper() → True |
이 함수들은 문자열을 다룰 때 매우 유용하며, 실제 코드에서도 자주 사용됩니다.
■ 추가적인 문자열 관련 함수들
5. 문자열 변환 함수
함수 - 설명 - 사용 예시
capitalize() | 문자열의 첫 글자를 대문자로 변환 | "hello world".capitalize() → 'Hello world' |
swapcase() | 대문자는 소문자로, 소문자는 대문자로 변환 | "Hello World".swapcase() → 'hELLO wORLD' |
zfill(n) | 문자열을 n 길이만큼 0으로 채워서 반환 | "42".zfill(5) → '00042' |
6. 문자열 분리 및 결합 함수
함수 - 설명 - 사용 예시
partition(sep) | 특정 구분자를 기준으로 문자열을 3부분으로 나눔 | "hello world".partition(" ") → ('hello', ' ', 'world') |
rpartition(sep) | 오른쪽에서 첫 번째 구분자를 기준으로 문자열을 3부분으로 나눔 | "hello world hello".rpartition(" ") → ('hello world', ' ', 'hello') |
7. 문자열 정규화 및 기타 함수
함수 - 설명 - 사용 예시
expandtabs(n) | 탭(\t) 문자를 n 칸의 공백으로 변환 | "hello\tworld".expandtabs(4) → 'hello world' |
translate(table) | 특정 문자 매핑을 사용해 문자열 변환 | "hello".translate(str.maketrans("h", "H")) → 'Hello' |
이 함수들은 다양한 상황에서 문자열을 다룰 때 유용합니다.
■ 응용 연습 과제
1) 랜덤 함수와 문자열 응용.
2) 특수 문자와 인코딩 문제 연습.
3) 가장 쉬운 텍스트 파일 처리 예제 하나 정도..
■ 사용자 입력을 받는 부분은 파이썬 shell이나 tkinter, wxPython, PyQt/PySide 등 GUI 라이브러리를 사용해서 GUI 방식으로 처리할 수도 있습니다. 숫자가 입력되는 경우에는 자료형 변환 과정이 필요할 수도 있습니다. input() 함수는 숫자를 입력해도 그 숫자를 일단은 숫자 모양의 "문자열"로 간주합니다.
# 사용자로부터 문자열 입력받기
name = input("이름을 입력하세요: ")
# 입력받은 값 출력
print("안녕하세요,", name, "님!")
# name에 1234를 입력해도 1234는 문자열로 받아들여집니다.
# 파이썬 쉘에서 간단한 테스트를 진행합니다.
>>> name = input("Your Name : ")
Your Name : James
>>> name = input("Your Name : ")
Your Name : 1234
>>> name
'1234'
>>> type(name)
<class 'str'>
>>>
# <class 'str'>은 name이 '문자열'이라는 뜻입니다.
5. Files
Not yet! ^.^; 직접 타이핑으로 학습 권장!
6. Ref.
1) 강환수, 신용현 [ 파이썬으로 배우는 누구나 코딩 ] 홍릉.
2) 천인국, [ Python Express ] 생능.
3) 김영탁, [ 파이썬 프로그래밍 ] 홍릉.
Happy Programming!
^.^;
'Programming > Python' 카테고리의 다른 글
Portable Thonny IDE with py5 Download and Py5 연습 - 001 - 3D (0) | 2025.06.22 |
---|---|
Tkinter GUI와 함께 하는 파일 처리 연습 - 001 (0) | 2025.05.27 |
Color Picker 연습 - 001 (0) | 2025.05.22 |
프로세스의 실행과 종료하기 - Ex. 001 - calc.exe의 정체 (0) | 2025.05.22 |
Processing PythonMode Ex - 002 (0) | 2025.04.29 |