본문 바로가기

학원

2023/08/22 파이썬(문자열, 함수)

 

 


문자열

파이썬에서는 문자를 표현할 때 따로 구분하지않는다. 대부분 문자열이기 때문이다.

 

 

 

저장된 문자열도 결국엔 요소라 하나씩 확인할 수 있다.
그러한 요소를 반복문을 통해 순차접근이 가능하다.


 

 

위 사진처럼 range를 통해 index로 접근하는 방법이 있고 변수에 저장해서 접근하는 방법이 있다.

표현 방식은 무얼 써도 상관없다.



 


문자열의 Slicing

Slicing은 원하는 것을 잘라내는 것이다.
여기서 중요한것은 index를 잘 이해하는 것이다. 어디서부터 어디까지 잘라야하는지 알아야하기 때문이다. 이것은 띄어쓰기도 포함된다.


 

 

Have만 출력하고싶다면 변수명을 작성해주고 index어디서부터 : 어디까지 라고 생각하면 된다.
만약 처음이 처음과 끝은 그냥 맨처음과 맨끝을 나타낸다면 생략도 가능하다.


 

 

문자열에 +는 이어붙이기 느낌이고 *는 문자에 저장된 것이 여러번 출력된다.

 




문자열에서 자주쓰는 함수

.을 누르고 Tab을 누르면 쓸수 있는 함수가 굉장히 많은걸 확인할 수 있음


 

 

파이썬에서 영문은 대소문자를 구분하는데 upper이라는 함수는 대문자로 바꿔주고 lower라는 함수는 소문자로 바꿔준다. 


 

 

swapcase라는 함수는 대문자는 소문자로 소문자는 대문자로 바꿔준다.


 

 

영문은 맨 앞에 글자는 대문자로 사용하는 경우가 있는데 title을 사용하면 단어마다 맨 앞에는 대문자로 사용된다.


 

 

문자열 내에서도 count를 사용할 수 있음 만약 여기서 없다면 0을 반환해준다.


 

 

count는 갯수를 찾아주고 find는 말 그대로 찾아주는 것이고 찾았다면 위치를 알려준다. 이것도 대소문자의 구분을 하기 때문에 유의한다.
만약 중복되는 게 있다면 뒤에 숫자를 써서 숫자를 쓴 index뒤부터 찾아달라 라고 할 수 있음
만약 찾으려는게 없다면 -1을 반환해준다.


 

 

find와 비슷하게 위치를 찾아주느 함수가 있는데 index라는 함수이다 index라는 함수는 찾으려고 하는데 없으면 오류가 뜨게된다. find와 차이점이라고 할 수 있음

 




[ 실습 ]
변수를 하나 저장해서
그 안에 a의 개수, s의 개수, 총 길이를 하는데 len과 count는 사용하면 안된다.

 

 

 

이런식으로 0에서부터 시작해서 pp는 a가 나올 때마다 하나씩 더해서 저장하는 것
kk는 그냥 1씩 증가함에 저장하는 것

 

 

 

문자열을 저장하는데 양 쪽에 공백으로 처리되는 상황이 있을 것 그런상황에서 쉽게 사용할 수 있는 함수인 strip이라는 함수가 있다. 이것은 한쪽만 하는 rstrip과 lstrip이 있다.

 

 

 

치환을 해주는 replace라는 함수도 있음



[실습]

 

s에 저렇게 저장이 되어있을 때
김개똥:1999년3월 24일
홍길동구리:1999년 4월2일
선우선녀:1999년5월14일
으로 변경하고 싶을 때 아래 사진처럼 명령어를 입력해주고 


 



split
split는 공백기준으로 잘라서 리스트 형식으로 분리시켜주는 것


 

그렇기 때문에  요소를 찾는 것처럼 찾을 수 있다.


 

 

기본으로 아무것도 하게 된다면 공백을 기준으로 자르지만 우리가 원하는 식으로 입력하게 된다면 그거를 기준으로 분리시키게 된다.
비슷한 함수로써 splitlines라는 함수는 개행 기준으로 분리한다.



 

isdigit 숫자로 구성되어있나
isalpha 알파벳으로 구성되어있나
isalnum 숫자+알파벳으로 구성되어있나 
islower 소문자로 구성되어있나
isupper 대문자로 구성되어있나
isspace 공백으로 구성되어있나
이것들은 True혹은 False로 값이 출력되게 된다.

 




[ 실습 ] 

 

info에 이런식으로 저장되어있는데
이것들을 주민번호로 가능한것들만 출력하고 뒷자리는 *로 만들고싶다.

 

 

이런식으로 작성해주면 해결할 수 있다. 하지만 test라는 애는 앞뒤가 *로 변해버렸다 이거까지 해결하고싶다면 어찌 해야할까



 

이런식으로 길이를 확인하고 위쪽에 적용시키면 될 것이다.


 

 

이런식으로 들어준다. 5번 반복된다는 것은 위쪽 count'-'에서 어차피 반복되니까 안넣어도 상관없음


 

 



함수

 

 

함수는 이런형태로 사용된다.


 

 

함수의 이름은 첫글자는 대문자여야한다.(약간 암묵적 룰이다.)
이런식으로 Add라는 함수를 만든 것
*인수는 함수를 호출해서 입력하는 값
*인자는 그 함수를 저장하는 변수

 

 

 

이런식의 함수가 있는데 실행되는 순서를 보게 되면 
함수를 호출하면 그때부터 함수가 시작되는 것 그렇기 때문에 a()부터 시작해서 a()가 실행될 때 a안에 있는 b()가 실행되는 것


 

 

그렇기 떄문에 이 것을 보니 a()가 실행되면 그 안에 '나는 A'가 먼저 실행되고 아래에 있는 b()로 def b()로 가게되고 나는 B를 실행하고 다시 'A함수 종료'를 하고 다시 '프로그램 종료'를 출력하게 된다.


 

 

이러한 함수의 흐름은 이런식으로 진행된다. print(a)가 먼저 실행되면서 a(n1,n2,n3)에 1,2,3이 들어가게 된다. 그리고 "나는 A다"가 출력이 되고 아래로 내려가는데 b(n3)을 확인하고 위로 올라감 위에 올라가서 "나는 B다"를 출력하고 b(n3)은 30이라는걸 들고 아래로 내려간다. 내려가서 n1*n2*n3를 진행하고 60이라는 값을 출력하고 마무리된다.