당신은 멋쟁이, 우리는 장고쟁이~

0%

Python 기초 2편 - Syntax

Python Syntax (문법, 구문)


파이썬 프로그램은, parser 로 읽어집니다

파이썬은 매우 읽기 편한 언어가 되기 위해서 디자인 되었습니다.

파이썬 프로그래밍 언어의 문법은, 어떻게 파이썬 프로그래밍이 작성되어야 할지에 대한 규칙을 다룹니다



Python Line Structure (줄구조)


파이썬 프로그램은 여러개의 논리적 줄들로 나누어져 있고, 각 논리적 줄은, NEWLINE 토큰에 의해서 종료 됩니다.


논리적 줄은, 하나 혹은 그 이상의 줄들로 부터 생성 됩니다.


하나의 줄은, 공백, 탭, 주석같은 formfeed 로 이루어질수 있고, 비어있는 줄은 인터프리터가 무시합니다.


1
2
3
x = 1 
if x > 0:
print('이 세줄은 물리적 / 논리적 줄들 입니다.')


파이썬에서 주석 (comments)


파이썬에서 주석은, 문자열로 치지 않는 # 으로 시작하고, 물리적으로 한줄의 끝에서 끝납니다.


# 뒤의 모든 케릭터들은 주석의 부분이고, 파이썬 인터프리터는 이들을 실행하지 않고 무시합니다.



아래 예시를 들어봅니다. 참고로, 파이썬에서 다수의 줄 혹은 블럭으로 된 주석은 존재하지 않습니다.



1
2
3
4
5
x = 1 
# x 의 초기값은 1 입니다

if x > 0:
print('두번째 줄은 주석입니다') # 문자열을 출력합니다 (이것도 주석입니다!)

두개의 줄 합치기


만약 하나의 줄에 상대적으로 긴 코드를 작성하고 싶으면, \ 백슬래쉬를 사용하여, 논리적 줄을 두개 혹은 다수의 줄로 나눌수 있습니다. 따라서, 한줄이 \ 로 끝나고, 문자열의 부분 혹은 주석이 아니라면, 다음줄로 이어지는 줄로 볼수 있습니다.


예시를 들면,


1
2
3
4
5
6
7
8
9
10
11
12
u = 0
v = 1
w = 2
x = 3
y = 4
z = 5


if u == 0 and v > 0 \
and w > 1 and x >2 \
and y > 3 and z > 4:
print("이것이 줄들을 합치는 예시입니다")

다수의 statements 한줄에 작성하기


두개의 다른 statements 를 세미콜론 ; 을 두개의 줄 사이에 사용하여 이어줄수 있습니다.


1
2
3
4
5
6
print('statement 1 ')
print('statement 2 ')

# ; 세미콜론을 두개의 줄 사이에 사용하여, 아래처럼 합쳐놓을수 있습니다.

print('statement 1 ');print('statement 2 ')


들여쓰기


파이썬은 C 나 C++ 에서 ({}) 처럼, 클래스, 함수 혹은 제어문 프로그램 블럭을 정의하기 위해서 공백을 사용합니다.


들여쓰기에서 공백의 수는 (스페이스 와 탭 ) 정해지지 않았습니다. 하지만, 블럭안에 모든 statement 들은 같은 양의 들여쓰기가 되어 있어야 합니다.


들여쓰기는 보통 4칸의 공백으로 되어야 합니다


아래 예시에서는, statement 들이 들여쓰기가 되어 있지 않습니다. 이는 문법 에러를 발생시킵니다.


1
2
3
4
x = 1 
if x > 0:
print('이 statement 는 들여쓰기가 안되었습니다')
print('이 statement 는 들여쓰기가 안되었습니다')

아래 예시에서는, 4칸 들여쓰기를 해주었습니다.


1
2
3
4
x = 1 
if x > 0:
print('이 줄은, 4칸 들여쓰기가 되어 있습니다')
print('에러를 발생시키지 않습니다 ')


파이썬 코딩 스타일


  • 들여쓰기 마다, 4칸의 공백을 사용합니다

  • 공백과 tab 을 혼용하여 사용하지 않습니다

  • 한줄의 최대 길이는, 79 케릭터입니다. 이는 작은 디스플레이를 가진 사용자들을 도와줍니다

  • 가장 상위의 함수와 클래스 정의들 사이에는 두칸의 빈줄들을 사용하여, 구분을 해줍니다. 함수와 클래스 내부의 메서드 정의들과 큰 단위의 코드 블럭들 사이에는 한칸의 빈줄을 사용하여 구분해 줍니다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    class A:
    pass


    class B:
    pass

    # 가장 최 상위에 있는 A 와 B 클래스 끼리는 두칸의 빈줄들을 사용하여 구분을 해줍니다

    class C:
    def abc():
    pass

    def fge():
    pass

    # 클래스 C 내부에 있는 abc 와 fge 함수끼리는 한칸의 빈줄을 사용하여 구분 해줍니다.

    class D:
    pass

  • 가능하다면, 주석은 인라인으로 처리합니다
  • exrpression 과 statement 주변에 공백을 사용합니다

파이썬 예약어


아래 식별자들은 파이썬 안에서 예약된 단어들입니다. 이 단어들은, 일반적인 식별자로 사용될수 없습니다. (예, 변수명, 클래스명, 함수명 등등 )


False class finally is return
None continue for lambda try
True def from nonlocal while
and del global not with
as el if or yield
assert else import pass
break except in raise