마이크로파이썬 > AI 프롬프트
마이크로파이썬에서 str 자료형의 메소드 사용법
프롬프트 영역으로 마우스를 옮기고 Copy 버튼을 누르면 클립보드에 프롬프트의 내용이 복사됩니다.마이크로파이썬에서 str 자료형을 다루는 메소드의 사용법을 설명해 줘.
AI가 만든 결과
MicroPython에서도 Python 표준과 유사하게 문자열(str
)을 다루는 다양한 메서드를 지원합니다. 다만 일부 최신 Python 기능이나 고급 포매팅 메서드는 지원되지 않을 수 있으니, 아래에서 소개하는 주요 메서드를 중심으로 살펴보시기 바랍니다.
1. 문자열 기본 사용
- 문자열은 작은따옴표(
' '
)나 큰따옴표(" "
)로 둘러싸여 표현됩니다. - 문자열의 길이는
len()
함수로 알 수 있습니다. - 인덱싱(예:
s[0]
)과 슬라이싱(예:s[1:4]
)도 Python 표준과 동일하게 사용할 수 있습니다.
>>> s = "Hello, MicroPython!" >>> len(s) 19 >>> s[0] 'H' >>> s[7:16] 'MicroPyth'
2. 주요 문자열 메서드
아래 메서드들은 마이크로파이썬에서도 대부분 동일하게 동작합니다. 예제 코드를 통해 사용법을 알아봅시다.
2-1. 대소문자 변환 메서드
upper()
: 문자열을 모두 대문자로 변환lower()
: 문자열을 모두 소문자로 변환capitalize()
: 문자열의 첫 글자를 대문자로, 나머지는 소문자로title()
: 각 단어의 첫 글자를 대문자로 변환 (MicroPython 버전에 따라 지원 여부가 다를 수 있음)
s = "hello micropython" print(s.upper()) # "HELLO MICROPYTHON" print(s.lower()) # "hello micropython" print(s.capitalize()) # "Hello micropython" # title()은 일부 MicroPython 버전에서 사용 가능 # print(s.title()) # "Hello Micropython"
2-2. 공백 및 특정 문자 제거 메서드
strip()
: 문자열 양쪽에서 공백(또는 지정 문자를) 제거lstrip()
: 문자열 왼쪽(앞)에서 공백(또는 지정 문자를) 제거rstrip()
: 문자열 오른쪽(뒤)에서 공백(또는 지정 문자를) 제거
s = " Hello MicroPython " print(s.strip()) # "Hello MicroPython" print(s.lstrip()) # "Hello MicroPython " print(s.rstrip()) # " Hello MicroPython"
strip()
,lstrip()
,rstrip()
메서드는 공백 이외의 특정 문자를 제거할 수도 있습니다. 예:s.strip(",")
2-3. 찾기/확인 메서드
find(substring)
: 부분 문자열substring
이 처음 발견되는 인덱스를 반환 (없으면-1
)index(substring)
: 부분 문자열을 찾지만, 없으면ValueError
를 발생startswith(prefix)
: 문자열이prefix
로 시작하는지 여부(True/False)endswith(suffix)
: 문자열이suffix
로 끝나는지 여부(True/False)
s = "MicroPython is fun" print(s.find("Python")) # 5 (인덱스 5 위치에서 "Python" 시작) print(s.find("Java")) # -1 (없음) print(s.startswith("Micro")) # True print(s.endswith("fun")) # True
2-4. 치환(변경) 메서드
replace(old, new[, count])
: 문자열 내old
를new
로 치환.count
를 지정하면 그 횟수만큼만 치환
s = "abc abc abc" print(s.replace("abc", "XYZ")) # "XYZ XYZ XYZ" print(s.replace("abc", "XYZ", 2)) # "XYZ XYZ abc" (2번만 치환)
2-5. 분할/합치기 메서드
split(sep=None)
: 공백(기본) 또는 지정 구분자(sep
) 기준으로 문자열을 쪼개어 리스트로 반환join(iterable)
: 리스트나 튜플 같은 반복 가능한 객체 요소를 문자열 구분자로 이어 붙여 새 문자열 생성
s = "apple,banana,grape" fruits = s.split(",") print(fruits) # ["apple", "banana", "grape"] joined_str = " | ".join(fruits) print(joined_str) # "apple | banana | grape"
2-6. 기타 메서드 (상황에 따라 MicroPython 버전에 따라 다를 수 있음)
count(substring)
: 부분 문자열이 몇 번 등장하는지 센다.isalpha()
: 문자열이 알파벳만으로 구성되었는지 확인.isdigit()
: 문자열이 숫자로만 구성되었는지 확인.isalnum()
: 문자열이 알파벳 또는 숫자로만 구성되었는지 확인.
s = "Hello123" t = "Hello" print(s.count("l")) # 2 (두 번 등장) print(t.isalpha()) # True print(s.isalpha()) # False (숫자 포함) print(s.isdigit()) # False
3. 문자열 포매팅(Formatting)
3-1. %
연산자를 이용한 포매팅
MicroPython에서는 C 스타일 포매팅(%
) 방법이 일반적이며, 가벼운 리소스로 문자열을 포맷할 수 있습니다.
name = "John" age = 30 msg = "My name is %s, and I'm %d years old." % (name, age) print(msg) # "My name is John, and I'm 30 years old."
%s
: 문자열%d
또는%i
: 정수%f
: 부동소수점(실수)
3-2. format()
메서드
어느 정도 최신 버전의 MicroPython이라면 str.format()
을 사용할 수 있습니다. 다만, 모든 기능(예: f-string, 고급 형식 지정 등)이 완벽히 지원되지 않을 수도 있습니다.
name = "Jane" age = 28 msg = "My name is {}, and I'm {} years old.".format(name, age) print(msg)
f-string 문법(
f"..."
)은 일부 MicroPython 버전에서 지원되지 않을 수 있으니, 사용 환경에 따라 확인이 필요합니다.
4. 메모리 사용 및 주의사항
- 마이크로파이썬은 메모리 용량이 제한된 소형 MCU에서 구동되는 경우가 많으므로, 문자열 연산이 과도하면 메모리 부족이나 성능 저하가 올 수 있습니다.
- 긴 문자열을 반복해서 연결(예:
+=
)하기보다는, 리스트에 추가 후 나중에join()
을 쓰거나, 부분 문자열을 처리한 뒤 합치는 전략을 쓰는 것이 메모리 관리에 유리합니다. - 문자열 슬라이싱(slicing)은 추가 메모리를 점유할 수 있으므로, 필요에 따라서는
bytearray
등을 사용하는 편이 좋을 때도 있습니다(파일 처리, 대량 데이터 파싱 등).
정리
마이크로파이썬에서 str
자료형은 기본적으로 표준 Python의 문자열 처리 방식과 유사합니다. 흔히 쓰는 메서드(upper
, lower
, find
, replace
, split
, join
등)는 대부분 동일하게 동작하므로, 일반 파이썬 문법에 익숙하다면 쉽게 적응할 수 있습니다.
단, MicroPython 버전에 따라 특정 고급 기능(예: 일부 포매팅 옵션, str.title()
, f-string 등)이 빠져 있을 수 있으니, 개발 시에는 해당 보드/펌웨어의 지원 여부를 확인하시기 바랍니다.
- 핵심 포인트
- 인덱싱, 슬라이싱, 메서드 사용법은 표준 Python과 거의 동일
%
연산자를 통한 문자열 포매팅이 가장 보편적- 메모리 및 실행 성능을 고려한 문자열 처리 전략 필요
위 내용을 바탕으로 마이크로파이썬 환경에서도 문자열을 효율적으로 다뤄보시길 바랍니다.