이번 포스팅에서는 Python의 기본 문법에 대해 포스팅을 쓰려합니다.
본격적으로 시작되기 전에, 기본 용어 먼저 짚고 넘어가겠습니다.
데이터를 저장하는데 사용되는 이름
변수를 사용하면 데이터에 쉽게 엑세스하고 수정이 가능합니다.
# name이라는 변수에 "주영"이라는 문자를 할당합니다.
name = "주영"
# age라는 변수에 27이라는 숫자를 할당합니다.
age = 27
파이썬에는 이미 특정한 기능을 수행하도록 예약이 되어 변수 이름으로 사용할 수 없는 키워드들이 있습니다.
이 키워드를 가지고 변수를 만들면 문법 에러 즉, SyntaxError
가 났다는 문구가 뜹니다.
그래서 아직 파이썬에 익숙하지 않은 사람들은 keyword들을 한 번 확인해보는 것도 좋을 것 같습니다.
import keyword
# 파이썬의 모든 예약어 출력
print(keyword.kwlist)
# 출력 예시 : ['False', 'None', 'True', 'and', 'as', ...a]
파이썬 식별자는 변수, 함수, 클래스, 모듈 또는 기타 객체를 식별할 때 사용하는 이름입니다.
Python identifier에도 작성 규칙이 있습니다.
1) 문자 시작
식별자는 문자(A-Z, a-z) 또는 밑줄(_)로 시작해야 하며, 숫자로 시작할 수 없습니다.
2) 문자, 숫자, 밑줄 포함 가능
이후에는 문자, 숫자(0-9), 밑줄(_)을 조합해서 사용할 수 있습니다.
3) 대소문자 구분
파이썬은 대소문자를 구분합니다. 예를 들어, counter
와 Counter
는 서로 다른 식별자로 취급됩니다.
4) 예약어 사용 금지
파이썬의 예약어는 식별자로 사용할 수 없습니다. 예약어에는 if
, for
, class
, return
, global
등이 포함됩니다.
5) 길이 제한 없음
식별자의 길이에는 제한이 없지만, 코드의 가독성을 위해 적절한 길이를 유지하는 것이 좋습니다.
위의 규칙만 보면 이게 무슨 얘기인지 헷갈리기에, 식별자를 지을 때의 좋은 예시를 들어드리겠습니다.
1) 명확성
식별자는 가능한 한 명확하게 그 목적이나 사용을 설명해야 합니다.
student_count
: 학생 수를 나타내는 데 적합한 이름입니다.
2) 간결성
너무 긴 이름은 읽기 어렵기 때문에, 간결하면서도 의미가 명확하게 전달되는 이름을 선택하는 것이 좋습니다.
count_student_for_report
보다는 count_student
가 더 더 적합합니다.
3) 규칙성
일관된 명명 규칙을 사용하면 코드의 일관성이 유지되고, 다른 사람이 읽기 쉬워집니다.
변수 이름에는 소문자를 사용하고, 클래스 이름에는 대문자로 시작하는 카멜케이스(CamelCase)를 사용하는 것이 일반적입니다.
카멜케이스(CamelCase)와 스네이크 케이스(snake_case)는 프로그래밍에서 식별자를 명명할 때 사용되는 두 가지 주요한 명명 규칙입니다. 이는, 코드의 가독성과 유지 관리를 위해 사용됩니다.
카멜케이스는 각 단어의 첫 글자가 대문자로 시작하고, 공백 없이 모든 단어가 연결되어 있는 형태의 명명 규칙입니다. 카멜케이스도 작성법이 두 가지로 나뉩니다.
employeeName
, totalAmount
EmployeeName
, TotalAmount
스네이크 케이스는 모든 글자가 소문자로 되어 있으며, 단어 사이를 밑줄(_
)로 연결하는 명명 규칙입니다. 이 방식은 파이썬과 같은 언어에서 변수명, 함수명을 지을 때 널리 사용됩니다.
예 : student_count
, total_amount
파이썬에서는 명령문이 각 줄에 하나씩 위치합니다. 이는 파이썬 코드가 자연스럽게 읽히도록 하며, 코드의 가독성을 높여줍니다.
만약, 한 줄에 여러 명령문을 작성해야 한다면, 세미콜론(;
)을 사용하여 명령문을 구분할 수 있습니다. 그러나 이 방법은 일반적으로 권장되지 않습니다.
# 한 줄에 한 명령어만 입력
a = 5
b = 10
c = a + b
print(c)
# 여러 명령어 입력 -> 권장되지 않는 방법
a = 5; b = 10; c = a + b; print(c)
들여쓰기는 보통 if
문, for
루프, 함수 정의, 클래스 정의 등의 본문은 들여쓰기를 통해 구분할 때 쓰입니다.
가독성을 중요시하는 파이썬은 들여쓰기가 매우 중요한데, 공백 4개를 사용하는 것이 일반적입니다. 공백 4개를 사용하지 않더라도, 들여쓰기의 일관성을 유지해하는데, 그렇지 않으면 IndentationError
가 발생합니다.
# 좋은 예시
if True:
print("True 조건입니다.")
else:
print("False 조건입니다.")
for i in range(5):
print(i)
# 나쁜 예시
def my_function():
print("Hello, World!")
# 결과 : IndentationError: expected an indented block
위의 예시에서 #
가 많이 쓰였다는 것을 느끼셨을 겁니다. 이는, 부가설명을 쓰는데 사용되는 부호(Hash Sign) 입니다. 파이썬 코드에 #
가 있으면, 해당 줄은 무시하고 다음 줄로 넘어가 코드를 실행시킵니다.
"suite"는 하나 이상의 문장(선언문)을 포함하는 코드 블록을 의미합니다. 구조는 대략 아래와 같습니다.
키워드 조건/식:
선언문1
선언문2
...
여기서 키워드
는 if
, for
, def
등의 파이썬 구문을 시작하는 예약어를 의미하고, 조건/식
은 해당 키워드에 따른 조건이나 식을 나타냅니다. 콜론(:
) 다음에 나오는 들여쓰기된 선언문들은 suite를 구성합니다.
한 눈에 보기 쉬운 예시를 보여드리겠습니다.
글로만 읽으면 어렵게 느껴지겠지만, 파이썬 문법부터 하나씩 클론코딩과 응용을 반복하다보면 자연스레 적용을 하게 되니 이 글을 보고 ‘프로그래밍은 어렵구나!’라 생각하며 겁을 먹는 일은 없으셨으면 좋겠습니다 :)