본문 바로가기
Programming/Python

문자열 함수 - 001

by The Programmer 2025. 5. 25.

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!

^.^;