반응형

SCSA 교육 입과 전, Python 기초 문법을 예습해가는 시간을 갖고자 합니다.

 

먼저 산술연산자 4개부터 봅시다. 당연한 사칙연산들인데요.  C/C++에선 + , - , / , %이 있습니다.

파이썬에서는 특이한게 +,-,/,//,%,divmod(a,b) 로 크게 6가지가 있어요.

 

+ 는 더하기 ,  - 빼기 , / 는 소수점자리까지 출력하는 나누기  , // 는 몫만 출력 (C/C++에선 주석처리였죠?) , % 는 나머지 출력 ,  divmod(a,b)는  a//b , a%b를 동시에 출력하는 문법입니다.

 

 

다음은 문자열입니다. C/C++에선  문자는 작은따옴표로 , 문자열은 큰따옴표로 구분했는데 파이썬은 상관없습니다.

작은따옴표로 하든 큰따옴표로 하든  알아서 다 인식이 됩니다.

a = 'abc'

b = 'def'   이렇게 있을 때, 문자열 연산은

print(a+b)의 결과는 abcdef가 됩니다.  그냥 앞의 문자열과 뒤의 문자열이 합쳐지는 것입니다!

 

 

다음은 리스트입니다. 튜플/딕셔너리는 잠시 접어두고  리스트만 보고 다음 글로 넘어갈게요.

리스트는 C/C++에서 배열과 동일합니다. 리스트를 비워두고 입력받는 방법은 지금은 말고 리스트와 관련된 문법만

리뷰해보겠습니다.

 

hello = ['1','2','3','4','5']  이렇게 리스트가 있다합시다.

근데, 생각해보니 우리는 배열(리스트)의 인덱스가 0부터 시작한다는 사실을 까먹고 있었습니다. 그래서 가장 뒤 원소를 지우고 제일 앞에 0을 추가하고자 합니다.

 

이럴 때 사용되는 리스트 문법은 2가지가 있습니다.

 

1. remove

위 리스트에서 원소 5를 빼고자할때는 hello.remove('5')를 해주면 삭제가 되구요.

 

2. insert

hello.insert(0,'0')를 하면 됩니다.  앞에 0은 인덱스를 가리키고, 뒤에 '0'은 0번째 인덱스에 박아넣어라! 라는 말입니다.

반응형
반응형

모든 언어가 그렇듯 개개별 프로그래밍 언어는 자료형이 존재합니다.

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언어

짜쟌, 이게 다에요. 딱봐도 파이썬이 훨씬 간단해보입니다. (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씩 출력되겠네요?

 

이렇게 슬라이싱하는 것도 가능하고, 문자열을 이어붙이는것도 가능합니다.

다 응용에 불과합니다.

그러면 여기서 간단한 퀴즈!

네모칸에 들어갈 코드를 짜보세요.

반응형

+ Recent posts