모든 언어가 그렇듯 개개별 프로그래밍 언어는 자료형이 존재합니다.
C언어라면 int 정수형, char 문자형, double 실수형 등등이 있습니다.
파이썬도 마찬가지입니다.
각각 변수들의 타입을 확인해보니 a는 float(실수형) , b와 c는 정수형 d는 문자형으로 나옵니다.
C언어와 다르게 일일이 int a라던지 char b라던지, 이런 식으로 잡아줄 필요는 없다는 것에서 벌써 행복하네요.
C언어로 코테 그만보기 위해 우리 다같이 탈출갑시다.
정수나 실수는 그냥 저희의 직관대로 정의내리면 되는데, 문자를 선언할 때는 큰 따옴표와 작은 따옴표에 대해 헷갈려하실 수도 있습니다. 결론부터 말씀드리자면, 둘다 뭐를 써도 상관없습니다.
큰따옴표든 작은따옴표든 문자열로 인식을 합니다.
하지만 이렇게 혼용하는건 안됩니다. 그리고 또 하나 좋은 팁!
문자열 안에 따옴표를 문장기호로 인식을 잘 한다는 것입니다. C언어였다면 Escape처리를 위해 백슬래시를 걸어야만 했는데 파이썬은 그딴거 없습니다. 벌써부터 남다른 언어라는 냄새가 납니다.
그러면 우리 문자열을 갖고 좀 더 배워보도록 합시다. 모든걸 다 알 필요는 없고 자주쓰이는 애들만 다뤄서 여러 프로그램을 뚝딱 만들어봅시다.
- 문자열을 쪼개보다.
C언어에서는 문자열에 관련된 함수들을 사용하기 위해서는 string.h 헤더파일을 불러와서 strlen, strcpy, strcmp 등등을 했습니다. 파이썬도 동일한 함수가 있습니다. 근데 C언어와 다르게 헤더파일같은건 선언안해도 기존에 다 내장되어있기에 아주 훌륭합니다.
먼저 제 블로그 명인 Crush on Study를 문자열 변수에 담아보도록 합시다.
네, 잘 담겨졌고, 잘 출력됩니다. 문자열을 다루다보면 가장 많이 사용되는 함수가 바로 문자의 길이를 알고자할때입니다.
C언어에서는 strlen함수였는데 파이썬에서는 len입니다.
짜쟌, 이게 다에요. 딱봐도 파이썬이 훨씬 간단해보입니다. (C언어에서 길이 15로 뜨는건 널포인트까지 계산해서 그렇습니다.)
길이구하는 함수 배웠고... 이번엔 한 문자열에 동일한 문자가 몇개있는지 카운팅해보는 함수도 알아봅시다.
파이썬의 count함수입니다.
C언어에서의 count코드를 구현한 것입니다.
파이썬은 혁명입니다.
이번에는 문자열 슬라이싱을 해보고자 합니다.
슬라이싱은 문자의 몇번째 위치들만 따로 모아보고싶거나, 문장의 어느부분까지만 끊을 때 주로 사용합니다.
그 이외에도 다양한 경우일 때도 사용하니까 알아두면 좋습니다. 이거도 쉬워요.
문자열 슬라이싱입니다. 주석처리로 달은 것처럼 0부터 시작해서 9까지 2칸씩 띄어서 출력해라라는 의미인데요.
우리 C언어에서도 배웠듯이 배열의 첫 인덱스넘버는 0입니다.
즉, num[5] = {1,2,3,4,5}; 로 정의를 했다면 1은 num[0]과 대응됩니다. 파이썬도 똑같습니다.
출력을 할 때, 인덱스 0 이상 ~ 10 미만 까지만 출력하되, +2씩해서 출력.
따라서, a[0] / a[2] / a[4] / a[6] / a[8]을 출력하는 것입니다.
a[0] = C
a[2] = u
a[4] = h
a[6] = o
a[8] = (n과 S사이의 스페이스)
이렇게 잘 출력되어있음을 알 수 있습니다.
오케이 그럼 여기서 응용해서 우리는 이렇게도 다뤄볼 수 있죠.
a[0:]은 0부터 문장의 끝까지 출력하라는 걸로 사실상 print(a)와 같습니다.
a[:10]은 문장의 처음부터 길이 10미만까지만 출력하라합니다.
a[::2]는 문장을 처음부터 끝까지 출력하되 +2씩 해서 a[0],a[2],....,a[N-2],a[N]까지 출력하라는 거구요.
a[::-1]은 맨뒤에서부터 거꾸로 출력하라는 뜻입니다. 0이 문장의 시작부분이면 -1은 문장의 끝부분입니다.
그럼 a[::-2]로 출력하면 대충 문장이 뒤집힌 다음 인덱싱이 -2씩 출력되겠네요?
이렇게 슬라이싱하는 것도 가능하고, 문자열을 이어붙이는것도 가능합니다.
다 응용에 불과합니다.
그러면 여기서 간단한 퀴즈!
네모칸에 들어갈 코드를 짜보세요.
'프로그래밍 > Python' 카테고리의 다른 글
[Python] # 0. 파이썬 기초 문법 Review (1) (0) | 2023.01.03 |
---|---|
[Python] # 3. 리스트, 튜플, 딕셔너리 (0) | 2022.06.12 |
[Python] # 1. 딥러닝을 활용한 데이터분석 모델 구현 복습 (0) | 2022.05.01 |
[Python] # 0. 머신러닝 (선형회귀분석)과 딥러닝 (경사하강법 및 활성함수 복습) (0) | 2022.05.01 |