인생유기 [1136857] · MS 2022 (수정됨) · 쪽지

2024-03-01 10:28:57
조회수 439

2

게시글 주소: https://orbi.kr/00067479358

그렇다면 문자열에 사용되는 함수에는 어떤 것들이 있을까? 

strip(), find(), format(), length(), split(), index() 등을 그 예시로 들 수 있다.

1. strip()

strip은 '벗기다'라는 뜻을 가진 단어이다. 그 뜻에서 유추할 수 있듯 strip함수는 대상 문자열의 좌우에서 특정 문자를 제거하는(벗기는) 작업을 수행한다. 


print("aasssa".strip("a"))

>>>sss

...

오르비에서 공백을 선두로 한 댓글을 달 경우, 게시된 댓글에서는 공백이 사라지는 것을 볼 수 있는데, 이 또한 (댓글).strip()의 작업이라 볼 수 있다.


2. index()

영단어 index는 '색인' 또는 '색인을 달다'라는 뜻을 가지고 있다. 작문을 해본 경험이 있는 독자라면 누구든지 색인이라는 단어를 들은 경험이 있을 것이다. 글과 관련해 '색인'이란, 자료의 출처 등의 속성을 나열해놓은 목록을 뜻한다. 이와 달리 파이썬에서의 인덱스는, 자료의 위치를 나타내는 값이다.

어떻게 자료의 위치를 나타낼 수 있을까? "인생번지점프"라는 문자열을 생각해보자. 이는 "인"+"생"+"번"+ ...+"프" 라는, 6가지 문자열의 조합이라 볼 수 있다. 이 때 파이썬은 우상향의 방편으로 각각의 문자열에 위치(순서)를 부여하는데, 이것이 바로 인덱스이다. 

문자열 "인생번지점프"에서 "생"의 인덱스는 "인"의 인덱스보다 1만큼 크고, "번"의 인덱스는 "점"의 인덱스보다 2 작은 양상이다.

여기서 헷갈리기 쉬운 것이 존재하는데, 파이썬은 '제로-인덱스'를 취한다. 그말은 즉슨, 문자열의 최전에 있는 문자열의 인덱스가 1이 아닌 0부터 시작한다는 점이다. 즉, "인생번지점프"에서 인덱스 1의 값을 가지는 문자열은 "인"이 아닌 "생"이 된다.

그렇다면 왜 하필 제로 인덱싱을 택하는 것일까? 제로 인덱싱은 한 가지 면에서 장점을 가진다. 인덱스 값은 0보다 크거나 같은 정수만을 가지는 것만이 아닌, 음의 정수 또한 가질 수 있다. 한마디로, 문자열 "인생번지점프"에서 "프"는 5값의 인덱스를 지님과 동시에 -1값의 인덱스 또한 가진다. 

이러한 방식으로, 프로그래머는 후방 문자열의 인덱스를 쉽게 알아낼 수 있다.

그렇지만 문자열의 길이가 긴 경우엔 인덱스를 쉽게 알기가 힘들 것이다. 이 때 사용하는 것이 바로 index() 함수이다.


wh="인생번지점프!매우높이서뛰어내리자."

print(wh.index("서"))

>>>11


위 문장에 대해 하나하나씩 브레이크다운을 해보자.

첫째로, wh=~~~는 저번에 말했듯이 식별자에 자료를 대입시키는 과정이다. 이 문장을 통해 식별자 wh는 문자열의 타입과 "인생번지점프!매우높이서뛰어내리자." 라는 값을 가지게 된다. 달리 말하자면, 아무 타입도 가지지 않던 wh에, 문자열에 적용가능한 함수를 쓸 수 있게 된다는 뜻이다! 

둘째로 print(wh.index("서")) 이다. print() 함수는 '값'을 '출력'해주는 함수이다. print() 함수를 제외하고 보면 

wh.index("서")가 된다. 이는 문자열에 둔갑한 wh에서/ 문자열 "서"의 인덱스를 아웃풋으로 가지게 해주는 문장이다.

wh.index("서")는 그 자체로 값을 지니지만 '값을 지닌다는 것'과 '값을 출력한다는 것'은 천지차이이다. 예시로, 문장 1+1은 1+1을 수행시켜주는 문장일 뿐, 우리가 그 값을 볼 수는 없다. 이 때 print()함수가 결과값의 시각화를 이뤄내는 것이다. 


위 식에서 한 가지 유의해야 할 점은, "서" 나 "!" 나 똑같은 문자열이라는 것이다. 우리는 종종 언어에 사용되는 문자를 특별한 것으로 간주하는 경향이 있는데, 특수문자 또한 문자와 동등한 위치의 문자열이라는 것을 염두해둔다면 프로그래밍적 사고에 한 발짝 더 다가갈 수 있을 것이다.




0 XDK (+0)

  1. 유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.


  • 첫번째 댓글의 주인공이 되어보세요.