-
3. (2) 파이썬 자료형 문자열파이썬(Python) 강의 2019. 2. 5. 14:24
맨 처음 자료형이랑 무엇인가?에 대해서 이야기 했던게 기억나는가? 자료형이란 메모리 공간 + 표현방법 + 기능들(오퍼레이션/연산)으로 이루어진다고 했다. 지난 포스트에서 파이썬 자료형 문자열의 표현방법을 알아보았다. 오늘은 문자열의 기능(오퍼레이션)에 대해 알아보고자 한다.
들어가기전에
이 포스트는 여러분이 파이썬을 설치했고 각자 원하는 IDE를 이용해 파이썬을 개발한다고 가정한다. 대화형(Interactive) 터미널을 사용해도 상관 없다. 혹시 파이썬을 설치하지 않았다면 1.파이썬 설치 및 개발환경 설정 이 포스트에서 파이썬과 파이썬 개발환경을 먼저 셋업하길 바란다. 앞서 말했듯이 반드시 실습 해 보길 바라고 30분 이상 소요하지 말라. 또한 이전 포스트인 3. (1) 파이썬 자료형 문자열에서 스트링(문자열)에 대해 먼저 학습 한 후 이 포스트를 진행해라.
숫자(Numbers) : 12, 24.3, 3+2j, .. (2.파이썬 자료형 숫자)
문자(Strings) : "hello, "world" <- 이 포스트에서 다루는 자료형 (이전 포스트: 3. (1) 파이썬 자료형 문자열)
리스트(Lists) : [1, 3, [3, 'hey'], 4]
딕셔너리(Dictionaries) : { 'name': 'fsoftwareengineer', 'age' : 17}
튜플(Tuples) : (1, 'a', 4, 'c')
파일(Files) : f = open('filename', 'r')
셋(Sets) (집합) : { 1, 4, 5 }
다른 타입들 : Boolean (True/Faluse), types, None, etc
프로그래밍 유닛 타입(Programming unit types) : 함수(Functions), 모듈(Modules), 클래스(Classes)
구현 레벨 타입(Implementational-level types) : 예외(Exception) 등등..
목표
- 함수(Function)
- 예제: find 함수
- 예제: replace 함수
- 예제: split 함수
- 예제: upper 함수
- 예제: isAlpha 함수
예상 소요시간: 30분 이내함수
함수란 어떤 기능을 의미한다. 아래의 예를 보자.위의 함수는 여러 인풋을 받아서 토끼인형을 만든다. 함수란 어떠 인자(인풋)을 받아서 인풋을 조작해서 어떤 결과(아웃풋)을 만들어 낸다. 아래를 다시 보자.
토끼의 귀나 눈 대신 이번엔 x, y, z를 인풋으로 받는 함수를 보자. 이 함수를 거치고 나면 x*y + z라는 결과 값을 받을 수 있다.
2, 3, 7이라는 인풋을 주었더니, 13이라는 아웃풋을 받을 수 있다. 이제 파이썬에서 함수를 어떻게 쓰는지 보자.
위의 노란색 박스에 함수라고 쓰여 있는 그림 대신 파이썬에서는 그냥 함수 이름을 쓴다. 여기서는 함수 이름을 function으로 예를 들었다. (함수 이름은 어떤 것이든 될 수 있다.) 함수 이름뒤에는 괄호를 친 후 들어갈 인풋을 순서대로 적어준다. 예를 듯면 두번 째 줄에 function(2, 3, 7)은 위의 노란색 함수 박스처럼 x=2, y=3, z=7을 받아 x*y + z를 계산한다고 하자. 따라서 아웃풋은 13일 것이다. 그렇다면 앞의 "y ="는 무엇인가? 이것은 바로 function(2, 3, 7)의 결과 값인 13을 y에 할당(저장)하라는 뜻이다. 따라서 y는 13을 가지고 있다.
함수에 대해서 갑자기 왜 설명을 하나면, 앞서 말했던 자료형은 메모리 공간 + 표현방법 + 기능들(오퍼레이션/연산)로 이루어져있고 이 포스트에서는 "기능"을 알아보기로 했다. 기능에는 두 가지가 있다. 연산자(+, -, /, %, >>, <<. * ..등) 이 있고, 방금 설명 한 "함수"가 있다. 함수는 보다 복잡한 기능을 수행하고 코드를 모듈화 할 수 있다. 모듈화에 대해서는 나중에 함수에서 더 자세하게 설명 할 것이니 지금은 사용하는 방법만 알면 된다.
그렇다면 함수를 어떻게 사용하는가?
나중에 함수를 사용하는 법에 대해서 자세히 설명하겠다. "문자열"다음에 마침표를 누르고 원하는 함수를 쓴다. 그 다음엔 괄호를 치고 인자를 적는다.
보통은 "something".function이렇게 따옴표가 있는 채로 함수를 잘 사용하지 않고, 변수에 할당한 후 사용하는게 일반적이다. 이제 예제를 보면서 더 이해 해 보도록 하자.
예: find 함수
find함수는 찾고싶은 문자열을 인풋으로 받아서 그 문자열이 시작되는 곳의 "인덱스"를 리턴하는 함수이다. 실행 해 보자.
s = "something"
y = s.find("th")
print(y) 4find함수는 이렇게 당신이 입력한 "th"를 문자열에서 찾아 인풋(여기선 th)가 시작되는 곳의 인덱스를 리턴한다. 만약 인풋을 찾을 수 없다면 -1을 리턴한다.
s = "something"
y = s.find("kk")
print(y) -1예제: replace 함수
함수의 이름에서 알 수 있듯이 replace함수는 원하는 문자열을 찾아 다른 문자열로 바꿔준다. 따라서 이 함수는 인풋을 2개 받는다. 첫번째 인풋으로 바꾸고 싶은 문자, 두번째 인풋으로 바꿔야 할 문자를 받는다. 말로 설명하기 어려우니 실습을 해보자.
s = "something"
y = s.replace("th", "kk")
print(y) somekking"th"가 "kk"로 변경 된 것을 알 수 있다. 이 함수는 예를들어서 "alice,bob,cindy"처럼 콤마로 나누어진 문자열을 나누고 싶을 때 유용하다.
s = "alice,bob,cindy"
y = s.split(",")
print(y) ['alice', 'bob', 'cindy']Q) 만약 바꾸고 싶은 문자가 존재하지 않는다면 어떻게 되는가? 실습 해 보아라.
예제: split 함수
split함수는 인풋으로 받은 문자를 기준으로 문자열을 두개로 나눠준다. 두개로 나눠진 문자열은 리스트로 리턴된다. 리스트를 잘 모르니 일단 두개로 나눠지는 것만 확인 해 보자.
s = "something"
y = s.split("t")
print(y) ['some', 'hing']t는 없어지고 t앞 뒤를 기준으로 문자열이 잘린 것을 확인 할 수 있다.
예제: upper 함수
upper함수는 아무 인풋도 받지 않고 이 함수를 부른 문자열을 전부 대문자로 바꿔준다.
s = "something"
y = s.upper()
print(y) SOMETHING예제: isAlpha 함수
isAlpha함수는 아무 인풋도 받지 않고 이 함수를 부른 문자열안의 내용물이 문자면 True 문자가 아니면 False를 리턴한다.
s = "something"
y = s.isalpha()
print(y) TureFalse를 리턴하는 경우는 다음과 같다.
s = "12345"
y = s.isalpha()
print(y) False끝
오늘은 문자열이 제공하는 함수들을 이용해서 다양한 실습을 해 보았다. 아직 초반인데도 불구하고 변수와 함수를 조금씩 하는 이유는 변수와 함수는 프로그래밍 언어에서 떼 놓고 배울 수 없는 부분이기 때문이다. 지금 혹시 이해가 잘 안되더라도 일단 자꾸 써보면 나중에 변수와 함수를 할 때 앞에서 썼던 변수와 함수에 대해 더 잘 이해 할 수 있을 것이다.
여러분이 파이참을 사용하고, 스트링(문자열)이 제공하는 다양한 함수를 실습 해 보고 싶다면 다음을 참고해라. s이후 .을 찍으면 여러가지 사용 가능한 함수와 사용법이 나온다. self라고 쓰여있는 녀석들은 무시해도된다.
'파이썬(Python) 강의' 카테고리의 다른 글
4. (2) 파이썬 자료형 리스트 (0) 2019.02.07 4. (1) 파이썬 자료형 리스트 (3) 2019.02.05 3. (1) 파이썬 자료형 문자열 (7) 2019.02.04 2. 파이썬 자료형 숫자 (0) 2019.02.04 1. 파이썬 설치 및 개발환경 설정 (7) 2019.02.03 댓글