본문 바로가기

Python

[Python] 1. 파이썬 기본 문법

728x90
반응형

파이썬 스타일 가이드는 아래 공식 사이트를 참고하면 좋다. 

 

www.python.org/dev/peps/pep-0008/

 

PEP 8 -- Style Guide for Python Code

The official home of the Python Programming Language

www.python.org

 

 

  1. 들여쓰기와 공백

 

프로그래밍 언어에서 코드의 블럭은 하나의 단위로 취급되는 문장들을 의미한다. 

C언어를 알고 있다면, C언어에서의 중괄호 { } 안에 들어있는 문장들이 하나의 블럭을 의미하는 것이다. 

 

파이썬에서는 이 역할을 '들여쓰기'가 대신한다. 

for(int i = 1; i<=10; i++){
	a += i;
}

이와 같은 C 스타일 코드는 파이썬에서 다음과 같이 표현된다.

for i in range(10):
	a += i

 

이렇게, 파이썬에서는 들여쓰기로 코드 블럭을 구분하며, 항상 콜론(:) 으로 끝나는 라인 뒤에 들여쓰기된 코드 블럭이 온다. 올바르게 들여쓰기를 하지 않으면 "IndentionError: expected an indented block" 에러를 발생시킨다. 

 

들여쓰기 방법은 공백 1칸, 2칸, 4칸, Tap 등 여러가지 방식이 있는데, 대부분의 가이드에서 공백 4칸을 사용하기를 권장하므로 공백 4칸을 이용하여 들여쓰기를 하는 것이 좋다. 

또한, 하나의 코드 블럭에서는 반드시 모든 문장의 들여쓰기를 동일한 방법으로 해주어야 한다.

공백과 Tap을 섞어서 사용하면 안된다. 

 

(기본적으로 많은 에디터들은 콜론(:) 이후에 자동으로 네 개의 공백으로 들여쓰기를 해주는 파이썬 모드를 지원한다)

 

예시를 하나 더 보자. 

a = 3
if a < 2:
    a = 4
    print(a)

a = 3
if a < 2:
    a = 4
print(a)    

 

위의 if문에서는 print(a)가 if문 내에 포함되어있고, 아래의 if문에서는 print(a)가 if문 밖에 위치하고 있다. 

따라서, 위의 if문에서는 print가 if문안에 포함되어있으므로 a의 값이 출력되지 않고,

아래의 if문은 a = 3이기 때문에 수행되지 않지만 그 아래의 print문은 if문과 관계없이 수행되어 a의 값이 출력된다. 

 

파이썬에서 문장의 앞에 오는 공백은 들여쓰기로 코드 수행에 영향을 주지만, 문장의 중간에 오는 공백은 무시된다. 

a=b+c
a = b + c
a               =      b         + c

위의 세 문장은 모두 동일한 코드이다. 

다만, 대부분의 파이썬 가이드에서는 이항 연산 앞뒤로는 하나의 공백, 단항 연산자에는 공백을 넣지 않도록 권장한다.

즉, 두번째 문장처럼 쓰는 것이 좋다. 

 

 

  2. 주석

 

파이썬에서 한 줄 주석을 달 때는 '#'을 사용한다.

'#' 뒤에 나오는 것들은 모두 무시되며, 코드의 뒤에도 사용이 가능하다. 

C/C++에서 '//'와 동일하게 작동한다. 

 

C/C++에서 여러줄 주석을 위한 /* ... */ 과 같은 문법은 파이썬에는 없지만, 여러 줄로 문자열을 쓰는 기능을 주석의 대안으로 자주 이용한다.

작은따옴표나 큰따옴표 세 개를 시작과 끝에 사용해주면 여러 줄 주석으로 이용할 수 있다. 아래의 예시를 참고하자

 

#파이썬 한줄 주석
a = 10 #문장 뒤에도 주석 가능

"""
여러줄 주석을 달기 위해서는
큰 따옴표 혹은 작은 따옴표 세개로 시작한 후 자유롭게 작성한 다음
다시 동일한 따옴표 세개로 닫아준다
"""

 

 

  3. 세미콜론 (;)

 

C언어를 먼저 접해본 사람이라면, 제일 먼저 체감하기 쉬운 차이점이 세미콜론(;)일 것이다. 

파이썬에서는 C에서 ;를 붙이는 거처럼 문장의 끝을 나타내지 않아도 된다. 단순하게 해당 라인의 끝이 문장의 끝이 된다. 

만약 코드를 다음 줄에 계속 이어서 쓰고 싶다면 문장의 끝에 \(역슬래시)를 붙여주면 다음 줄과 연결된다.

또는, 여러줄을 쓰고 싶은 문장에 소괄호를 쳐주면 해당 소괄호 안의 코드들은 하나의 문장으로 인식한다. 

 

a = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8

a = 1 + 2 + 3 + 4+\
    5 + 6 + 7 + 8

a = (1 + 2 + 3 + 4 + 
5 + 6 + 7 + 8)

 

위 세 코드는 모두 동일하게 작동한다. 

다만, 대부분의 파이썬 가이드에서는 괄호를 사용하는 것을 권장한다. 

 

파이썬에서 세미콜론(;)이 전혀 이용되지 않는 것은 아니다. 사실 세미콜론을 붙여도 에러가 발생하지는 않는다.  

한 줄에 여러 문장을 사용하고 싶을 때 세미콜론을 이용해 줄 수 있다. 

세미콜론을 이용하지 않는다면 한 라인은 반드시 하나의 문장으로 받아들이게 된다.

 

a = 2; b = 3
print(a); print(b)

이렇게 여러 문장을 한 라인에 쓰고 싶을 때 세미콜론을 이용해줄 수 있다. 

 

 

PC로 보시는 것을 권장합니다. 

피드백은 언제나 환영입니다. 댓글로 달아주세요 ^-^

728x90
반응형