▼2020년/파이썬 기초

[Python] 파이썬 기본 문법

ITISIK 2020. 1. 21. 11:26
반응형

파이썬 문법

  파이썬은 언어이다. C도 언어이고, Java도 언어이고, R도 언어이다. 그리고 한국어와 영어도 언어이다.

 

  그게 뭐?

 

  한국어와 영어에 문법이 있듯이, 파이썬에도 문법이 있다. 다만 한국어와 영어는 문법이 조금 틀려도 의사소통에 큰 지장이 없을 수 있으나, 프로그래밍에서 문법이 틀리면 전혀 다른 답이나 에러가 나와 컴퓨터와의 의사소통을 망치게 된다. 이번 포스트에서는 그 문법에 대해서 간단하게 알아보고자 한다.

  파이썬을 실행하면 맨 위에 파이썬의 버전과 함께 간단한 정보가 보인다. 그리고 밑에는 '>>>'기호가 있는데, 이 기호를 일컫어 프롬프트(Prompt)라고 한다. 프롬프트의 의미는 '인간의 명령을 기다리고 있다.'고 볼 수 있다.

  파이썬은 R과 마찬가지로 인터프리터 언어이다. 인터프리터 언어란, 한 줄 한 줄씩 대화를 주고 받듯이 진행되는 언어를 의미한다. C나 Java와 같이 대량의 코드를 작성한 뒤에 한 번에 컴파일 시켜서 작동되는 언어가 아니라는 의미이다.

  눈으로 직접 볼 겸, 프롬프트에 간단한 수학식을 계산시켜보자.

 

단순 계산(사칙연산)

  이와같이 가감승제 모두 우리가 생각했던 값 그대로 나오는 것을 볼 수 있다. 여기서 프로그래밍을 처음 하는 분께서 주의할 점은 나누기 기호(÷) 대신 /(slash)이고 곱하기 기호(×) 대신 *(asterisk)라는 사실이다. 필자가 학부 1학년 때 중간고사로 손 코딩 시험이 나왔는데 나누기를 기호로 작성했다가 그대로 감점 받은 흑역사가 있다.

  아무튼 이렇게 많은 수식에 대한 결과를 얻을 때 한 줄 씩 입력하고 Enter를 입력하면 그 결과값을 바로바로 얻을 수 있는 방식. 이것이 바로 인터프리터 방식이다. 이와 같은 형태가 마치 질문을 하고 대답을 듣는 대화와 같다 하여 대화형 인터프리터 방식이라고도 한다.

 

변수 할당(선언)

  우리가 초등학교 수학에서 중학교 수학으로 넘어갈 적에 변수를 사용한 수식을 활용한 기억이 있을 것이다.

 

$$○ \times\ 3 = 300$$

$$○ = ?$$

 

  위와 같은 것이 초등학교 때의 식이었다면,

 

$$3a = 300​$$

$$a =  ?$$

 

  중학교 때는 위와 같이 변수 a를 사용해서 방정식을 나타냈었다.

  파이썬에도 변수를 사용할 수 있는데, 방금 본 중학교 식의 모습과 거의 유사하다. 대신 수학과 다른 점이 딱 한 가지 있다. 수학에서는 등호기호(=)가 '같다는 의미'이지만, 프로그래밍에서는 등호기호(=)의 의미가 '우변의 값을 좌변의 변수에 할당한다는 의미'이다. 이렇게 특정값을 할당하게 되면 해당 변수가 선언됨과 동시에 특정값이 그 변수에 들어가게 된다.

  따라서 a = 3 과 같은 파이썬 코드가 있다면, 3을 a에 대입(할당)한다. 라고 해석하는 것이 옳다.

  따라서 위 문법은, a에 3을 대입하고 b에 -1을 대입한다. 그리고 a와 b를 더하여라 이므로 3 + (-1)이 되어 정답은 2가 된다. 얼핏 말장난 같지만 깊게 들어가면 헷갈리므로 처음에 배울때 반드시 '우변의 값을 좌변의 변수에 할당(대입)한다'고 익혀두는 것이 중요하다.

  변수에는 숫자값만 할당 가능할까? 아니다. 문자열도 가능하다.

owner = 'ITisIK'
site = 'blog'
site + owner
owner
Owner

  파이썬에서 문자열을 표현할 때에는 쌍따옴표(")나 홑따옴표(')를 이용하여 감싸주면 된다. "문자열" 혹은 '문자열'과 같이 하면 된다.

  owner라는 변수에 ITisIK라는 문자열을 할당했고, site라는 변수에 blog라는 문자열을 넣었다. 문자열을 이어서 출력할 때에는 + 기호를 이용하므로 +를 이용해서 두 변수를 한번에 호출해주면, 위와 같이 blogITisIK라는 문자열이 출력된다.

  파이썬은 대소문자를 엄밀하게 구분하기 때문에 owner가 아닌 Owner를 호출하면 해당하는 변수가 없다며 에러를 출력시킨다.

 

print() 함수 사용

  print() 함수를 써도 결과는 동일하다. 그렇다고 print() 함수가 필요없는 것은 아니다.

 

조건문(if문)

  프로그래밍에서 조건문은 중요하다. 여러가지 상황에 따라 작동시켜야 하는 함수 혹은 작동시키면 안되는 함수가 있을 수 있으므로, 조건문을 명확하게 아는 것은 매우 중요하다.

  위에서 >>>는 프롬프트로, 인간의 명령을 기다리고 있다는 의미라고 했었다. 위 스크린샷을 따라서 if MCYu_height > ITISIK_height: 를 치고 엔터를 치면, ...이 나타나는데, 이 ...은 아직 코드를 입력하는 중이니 좀 더 기다리겠다는 의미이다. 바꾸어 말하면 아직 프로그래밍 문장이 완성되지 않았다는 의미이다. 그리고 ...과 print() 함수 사이에는 space bar로 만든 공백 4개가 존재하는데 이는 파이썬 문법으로 반드시 지켜줘야 하는 부분이다. 이번에 배운 조건문 뿐만 아니라 파이썬 문법에서는 공백 4개를 가장 기본으로 하고 있으니 이번에 꼭 머리에 넣고 넘어가시기를 바란다.

  물론 재석이 형의 키가 내 키보다 크다는 사실을 꼭 이렇게 힘들게 알아낼 필요는 없다. 하지만 함수를 만들어두고, 기능별로 모듈화 시켜서 사용할 때에는 이러한 조건문이 매우매우 중요하다.

 

반복문(for문)

  여기서 [1, 2, 3]은 우리가 알던 수를 나열하여 일종의 리스트로 만들어낸 것이고, 그 리스트를 하나씩 꺼내어 print 함수에 넣는다고 보면 된다. 그래서 1 2 3 순서대로 하나씩 출력되고 종료된다. 이렇게 for문은 반복하는 '횟수'를 인간이 직관적으로 정해준다는 특징이 있다.

 

반복문(while문)

 

  반면 while문은 횟수를 직관적으로 정하기가 힘든 경우에 유용하다. while문은 특정 조건을 주어, 해당 조건이 성립되는 동안에만 반복하도록 설정하는 반복문이다. for문과 while문은 이렇게 비슷한 듯 다른 부분이 있어 상황에 맞게 사용해주면 된다.

  조건식이 i > 1 이므로, i값이 1보다 큰 동안만 실행되다가 1보다 작아지면 실행을 멈추게 되는 반복문인 것이다.

 

사용자 함수

  함수는 곧 기능이다. 프로그래밍에서는 특정 상태(값)을 저장하는 역할을 변수가 맡아서 하고, 특정 기능을 구현하는 역할을 함수가 맡아서 한다. 파이썬에서는 사용자가 직접 이러한 함수를 정의하여 사용할 수 있다.

  함수를 정의할 때 사용되는 키워드는 def이며, 정의의 definition에서 앞글자만 딴 것이다.

  myAdd라는 이름의 함수를 정의하고, 인수를 딱 두 개(a와 b) 받는 함수로 설정했다. return이란, 말그대로 반환해주는 값 즉, 출력값이며 a + b라는 식대로 입력받은 두 수를 더하여 출력하게 된다.

  여기까지가 파이썬의 기본적인 문법이었다. 간단하게 복습하며 글을 마친다.

1. 어떠한 속성, 고유값 등은 변수에 담아 저장 / 이용하며, 특정 기능은 함수를 정의하여 이용한다.

2. >>>는 프롬프트로, 인간의 명령을 기다리는 상태이고, ...은 아직 코드(명령)가 완성되지 않은 상태일 때 나타난다.

3. 사칙연산은 +, -, * , / 기호로 가능하다.

4. 문자열은 ' 기호나 " 기호로 감싸서 사용한다.

5. 조건문 if는 조건에 따라 특정 코드를 수행하거나 수행하지 말아야 할 때 사용한다.

  ※ 이때 들여쓰기는 Space bar 4개로 해야만 한다.

6. 반복문 for는 횟수가 직관적으로 정해져 있을 때 주로 사용되며,

반복문 while은 그렇지 못한 경우에 조건을 주어서 반복하는데 사용된다.

  ※ 이때 들여쓰기는 Space bar 4개로 해야만 한다.

  다음 글에서는 음식에서는 '재료'라고 할 수 있는, 프로그래밍의 '자료형'에 대해서 알아보고자 한다.

반응형