본문 바로가기
-----ETC2-----/Python

[Python] Week 11: 문자열 조작

by cogito21_python 2024. 6. 1.
반응형

Day 1: 문자열의 기본 개념

  • 강의 내용:
    • 문자열의 정의와 특징
      • 문자열의 기본 정의
      • 문자열의 불변성
    • 문자열 생성 및 초기화
      • 작은 따옴표, 큰 따옴표, 여러 줄 문자열
  • 실습:
    • 문자열 생성 및 초기화 예제
# 문자열 생성 및 초기화
single_quote_str = 'Hello, Python!'
double_quote_str = "Hello, Python!"
multi_line_str = """This is a
multi-line
string."""

print(single_quote_str)
print(double_quote_str)
print(multi_line_str)
 
 

Day 2: 문자열 인덱싱과 슬라이싱

  • 강의 내용:
    • 문자열 인덱싱
      • 문자열의 각 문자 접근
      • 음수 인덱스
    • 문자열 슬라이싱
      • 슬라이싱의 기본 개념
      • 슬라이싱을 통한 부분 문자열 추출
  • 실습:
    • 문자열 인덱싱 및 슬라이싱 예제
# 문자열 인덱싱
str_example = "Hello, Python!"
print(str_example[0])   # 'H'
print(str_example[-1])  # '!'

# 문자열 슬라이싱
print(str_example[0:5])  # 'Hello'
print(str_example[7:])   # 'Python!'
print(str_example[:5])   # 'Hello'
print(str_example[::2])  # 'Hlo yhn'
 
 

Day 3: 문자열 연결 및 반복

  • 강의 내용:
    • 문자열 연결
        • 연산자를 사용한 문자열 연결
      • join() 메서드를 사용한 문자열 연결
    • 문자열 반복
        • 연산자를 사용한 문자열 반복
  • 실습:
    • 문자열 연결 및 반복 예제
# 문자열 연결
str1 = "Hello"
str2 = "Python"
joined_str = str1 + ", " + str2 + "!"
print(joined_str)  # 'Hello, Python!'

# join() 메서드
words = ["Hello", "Python", "World"]
joined_str = " ".join(words)
print(joined_str)  # 'Hello Python World'

# 문자열 반복
repeated_str = str1 * 3
print(repeated_str)  # 'HelloHelloHello'
 
 

Day 4: 문자열 메서드 I

  • 강의 내용:
    • 기본 문자열 메서드
      • len(): 문자열의 길이 반환
      • upper(), lower(): 대소문자 변환
      • strip(), lstrip(), rstrip(): 공백 제거
  • 실습:
    • 문자열 메서드를 사용한 다양한 예제
# len() 메서드
str_example = " Hello, Python! "
print(len(str_example))  # 16

# upper(), lower() 메서드
print(str_example.upper())  # ' HELLO, PYTHON! '
print(str_example.lower())  # ' hello, python! '

# strip(), lstrip(), rstrip() 메서드
print(str_example.strip())   # 'Hello, Python!'
print(str_example.lstrip())  # 'Hello, Python! '
print(str_example.rstrip())  # ' Hello, Python!'​
 

Day 5: 문자열 메서드 II

  • 강의 내용:
    • 추가 문자열 메서드
      • replace(): 특정 문자열을 다른 문자열로 대체
      • split(): 문자열을 특정 구분자로 나누어 리스트로 반환
      • find(), rfind(): 특정 문자열의 인덱스 반환
  • 실습:
    • 문자열 메서드를 사용한 다양한 예제
# replace() 메서드
str_example = "Hello, Python!"
replaced_str = str_example.replace("Python", "World")
print(replaced_str)  # 'Hello, World!'

# split() 메서드
split_str = str_example.split(", ")
print(split_str)  # ['Hello', 'Python!']

# find(), rfind() 메서드
index = str_example.find("Python")
print(index)  # 7
rindex = str_example.rfind("o")
print(rindex)  # 10

 

Day 6: 문자열 포매팅

  • 강의 내용:
    • 문자열 포매팅의 개념
      • % 연산자를 사용한 포매팅
      • str.format() 메서드를 사용한 포매팅
      • f-string을 사용한 포매팅
  • 실습:
    • 다양한 문자열 포매팅 예제 작성
# % 연산자를 사용한 포매팅
name = "Alice"
age = 25
formatted_str = "Name: %s, Age: %d" % (name, age)
print(formatted_str)  # 'Name: Alice, Age: 25'

# str.format() 메서드를 사용한 포매팅
formatted_str = "Name: {}, Age: {}".format(name, age)
print(formatted_str)  # 'Name: Alice, Age: 25'

# f-string을 사용한 포매팅
formatted_str = f"Name: {name}, Age: {age}"
print(formatted_str)  # 'Name: Alice, Age: 25'

 

Day 7: 문자열 종합 연습 및 프로젝트

  • 강의 내용:
    • 문자열 종합 연습 문제 풀이
      • 다양한 문자열 조작 문제
      • Q&A 세션
    • 미니 프로젝트
      • 주제 선정 및 프로그램 설계
      • 문자열 조작을 활용한 프로그램 구현 및 테스트
  • 실습:
    • 종합 연습 문제 풀기
    • 미니 프로젝트 작성 및 발표
# 연습 문제 1: 문자열에서 모음의 개수를 세는 함수 작성
def count_vowels(s):
    vowels = "aeiouAEIOU"
    return sum(1 for char in s if char in vowels)

print(count_vowels("Hello, Python!"))  # 3

# 연습 문제 2: 문자열을 거꾸로 반환하는 함수 작성
def reverse_string(s):
    return s[::-1]

print(reverse_string("Hello, Python!"))  # '!nohtyP ,olleH'

# 연습 문제 3: 문자열에서 중복 문자를 제거하는 함수 작성
def remove_duplicates(s):
    result = ""
    seen = set()
    for char in s:
        if char not in seen:
            result += char
            seen.add(char)
    return result

print(remove_duplicates("Hello, Python!"))  # 'Helo, Pythn!'

# 미니 프로젝트 예제: 문자열 암호화 및 복호화 프로그램
def encrypt(text, shift):
    encrypted_text = ""
    for char in text:
        if char.isalpha():
            shift_base = 65 if char.isupper() else 97
            encrypted_text += chr((ord(char) - shift_base + shift) % 26 + shift_base)
        else:
            encrypted_text += char
    return encrypted_text

def decrypt(text, shift):
    return encrypt(text, -shift)

original_text = "Hello, Python!"
shift_value = 3
encrypted_text = encrypt(original_text, shift_value)
decrypted_text = decrypt(encrypted_text, shift_value)

print(f"Original: {original_text}")  # 'Hello, Python!'
print(f"Encrypted: {encrypted_text}")  # 'Khoor, Sbwkrq!'
print(f"Decrypted: {decrypted_text}")  # 'Hello, Python!'

 

이 강의는 파이썬의 문자열 조작을 익히는 것을 목표로 하며, 각 강의는 이론과 실습을 포함합니다. 다음 주차에 대한 상세 강의를 원하시면 말씀해 주세요!

반응형

'-----ETC2----- > Python' 카테고리의 다른 글

[Python] Week 13: 파일 입출력  (0) 2024.06.01
[Python] Week 12: 문자열 - 정규표현식  (0) 2024.06.01
[Python] Week 10: 집합  (0) 2024.06.01
[Python] Week 9: 딕셔너리  (0) 2024.06.01
[Python] Week 8: 튜플  (0) 2024.06.01