
Python 문법
Python은 다른 프로그래밍 언어와 구별되는 독특한 문법 특징을 가지고 있다. 가장 중요한 특징은 들여쓰기를 사용하여 코드 블록을 구분한다는 점이다. 이 장에서는 Python의 기본 문법 규칙을 상세히 알아본다.
Python 들여쓰기
들여쓰기(Indentation)는 Python의 가장 중요한 문법 요소다. 다른 언어에서 중괄호 {}를 사용하여 코드 블록을 구분하는 것과 달리, Python은 들여쓰기로 코드의 구조를 나타낸다.
들여쓰기의 중요성
Python에서 들여쓰기는 단순한 가독성 향상이 아니라 문법의 일부다.
if 5 > 2:
print("5는 2보다 큽니다!")
위 코드에서 print 문 앞의 공백은 필수다. 들여쓰기가 없으면 오류가 발생한다.
if 5 > 2:
print("5는 2보다 큽니다!")
# IndentationError: expected an indented block
들여쓰기 규칙
- 같은 코드 블록 내에서는 동일한 들여쓰기를 사용해야 한다
- 일반적으로 공백 4개 또는 탭 1개를 사용한다
- 공백과 탭을 혼용하면 안 된다
- 최소 1개의 공백이 필요하다
올바른 들여쓰기 예제
if 5 > 2:
print("5는 2보다 큽니다!")
print("이것도 같은 블록입니다")
if 3 > 1:
print("3은 1보다 큽니다!")
if 3 > 2:
print("3은 2보다도 큽니다!")
print("중첩된 블록입니다")
잘못된 들여쓰기 예제
if 5 > 2:
print("5는 2보다 큽니다!")
print("들여쓰기가 일치하지 않습니다")
# IndentationError: unindent does not match any outer indentation level
💡 들여쓰기 권장사항:
• PEP 8 스타일 가이드에 따라 공백 4개 사용을 권장한다
• 에디터에서 탭을 공백으로 변환하도록 설정하자
• 일관된 들여쓰기 스타일을 유지하자
• 코드 에디터의 들여쓰기 표시 기능을 활용하자
Python 변수
Python에서는 변수를 선언할 때 별도의 키워드가 필요하지 않다. 변수에 값을 할당하면 자동으로 변수가 생성된다.
변수 생성과 할당
x = 5
y = "Hello, World!"
print(x)
print(y)
Python은 동적 타이핑을 지원하므로 변수의 타입을 미리 선언하지 않아도 된다.
x = 4
x = "Sally"
print(x)
위 코드에서 x는 처음에 정수였다가 나중에 문자열로 변경된다.
변수 타입 확인
type() 함수를 사용하여 변수의 타입을 확인할 수 있다.
x = 5
y = "John"
print(type(x))
print(type(y))
실행 결과는 다음과 같다.
Python 주석
주석은 코드를 설명하기 위해 사용되며, Python 인터프리터에 의해 실행되지 않는다.
한 줄 주석
한 줄 주석은 # 기호로 시작한다.
# 이것은 주석입니다
print("Hello, World!")
print("Hello, World!") # 이것도 주석입니다
여러 줄 주석
Python에는 공식적인 여러 줄 주석 문법이 없지만, 몇 가지 방법을 사용할 수 있다.
방법 1: 각 줄에 # 사용
# 이것은 여러 줄에 걸친
# 주석입니다
# 각 줄마다 #을 붙여야 합니다
print("Hello, World!")
방법 2: 삼중 따옴표 사용
"""
이것은 여러 줄 주석입니다
여러 줄에 걸쳐 설명을 작성할 수 있습니다
하지만 기술적으로는 문자열입니다
"""
print("Hello, World!")
Python 명령문과 표현식
Python에서 코드는 명령문(Statement)과 표현식(Expression)으로 구성된다.
간단한 명령문
print("Hello, World!")
x = 5
y = x + 3
복합 명령문
if, for, while 등은 복합 명령문으로 콜론(:)과 들여쓰기를 사용한다.
if x > 0:
print("x는 양수입니다")
for i in range(3):
print(f"반복 {i}")
while x > 0:
print(x)
x -= 1
Python 식별자
식별자는 변수, 함수, 클래스 등의 이름을 지정하는 데 사용된다.
식별자 명명 규칙
- 영문자(a-z, A-Z), 숫자(0-9), 언더스코어(_)만 사용 가능
- 숫자로 시작할 수 없음
- 대소문자를 구분함
- Python 예약어는 사용할 수 없음
- 한글 등 유니코드 문자도 사용 가능 (권장하지 않음)
올바른 식별자 예제
name = "John"
age2 = 25
_private = "비공개"
firstName = "홍"
CONSTANT_VALUE = 100
잘못된 식별자 예제
2name = "John" # 숫자로 시작
first-name = "홍" # 하이픈 사용
class = "학급" # 예약어 사용
Python 예약어
Python에서 사용할 수 없는 예약어들이다.
예약어 | 설명 |
---|---|
and, or, not | 논리 연산자 |
if, elif, else | 조건문 |
for, while, break, continue | 반복문 |
def, return, yield | 함수 정의 |
class, import, from | 클래스와 모듈 |
try, except, finally, raise | 예외 처리 |
True, False, None | 상수값 |
Python 문자열
Python에서 문자열은 작은따옴표(‘) 또는 큰따옴표(“)로 둘러싸서 표현한다.
문자열 생성
print("Hello")
print('Hello')
name = "Python"
message = '안녕하세요'
여러 줄 문자열
삼중 따옴표를 사용하여 여러 줄 문자열을 만들 수 있다.
text = """이것은 여러 줄로 구성된
문자열입니다.
줄바꿈이 그대로 유지됩니다."""
print(text)
문자열 안의 따옴표
문자열 안에 따옴표를 포함하려면 다른 종류의 따옴표를 사용하거나 이스케이프 문자를 사용한다.
print("그는 '안녕하세요'라고 말했습니다")
print('그는 "안녕하세요"라고 말했습니다')
print("그는 \"안녕하세요\"라고 말했습니다")
Python 출력
print() 함수는 Python에서 가장 많이 사용되는 출력 함수다.
기본 출력
print("Hello, World!")
print(123)
print(3.14)
여러 값 출력
print("Python", "is", "awesome")
print("나이:", 25)
print("이름:", "홍길동", "나이:", 30)
구분자와 끝 문자 설정
print("A", "B", "C", sep="-")
print("Hello", end=" ")
print("World")
실행 결과는 다음과 같다.
A-B-C
Hello World
Python 입력
input() 함수를 사용하여 사용자로부터 입력을 받을 수 있다.
기본 입력
name = input("이름을 입력하세요: ")
print("안녕하세요,", name)
숫자 입력
input() 함수는 항상 문자열을 반환하므로, 숫자로 사용하려면 형변환이 필요하다.
age = input("나이를 입력하세요: ")
age = int(age)
print("내년에는", age + 1, "살이 됩니다")
age = int(input("나이를 입력하세요: "))
next_year_age = age + 1
print(f"내년에는 {next_year_age}살이 됩니다")
Python 연산자
Python에서 사용할 수 있는 주요 연산자들을 알아보자.
산술 연산자
연산자 | 설명 | 예제 |
---|---|---|
+ | 덧셈 | 5 + 3 = 8 |
– | 뺄셈 | 5 – 3 = 2 |
* | 곱셈 | 5 * 3 = 15 |
/ | 나눗셈 | 5 / 3 = 1.666… |
// | 몫 | 5 // 3 = 1 |
% | 나머지 | 5 % 3 = 2 |
** | 거듭제곱 | 5 ** 3 = 125 |
비교 연산자
x = 5
y = 3
print(x > y) # True
print(x < y) # False
print(x == y) # False
print(x != y) # True
print(x >= y) # True
print(x <= y) # False[/code]
논리 연산자
[code lang="python"]x = True
y = False
print(x and y) # False
print(x or y) # True
print(not x) # False
Python 코드 스타일
Python 커뮤니티에서 권장하는 코드 스타일을 알아보자.
PEP 8 스타일 가이드
- 들여쓰기는 공백 4개 사용
- 한 줄의 최대 길이는 79자
- 함수와 클래스 정의 사이에는 빈 줄 2개
- 메서드 정의 사이에는 빈 줄 1개
- 연산자 주변에는 공백 1개
좋은 코드 예제
def calculate_area(length, width):
"""사각형의 넓이를 계산합니다."""
area = length * width
return area
def main():
length = 10
width = 5
result = calculate_area(length, width)
print(f"넓이: {result}")
if __name__ == "__main__":
main()
💡 Python 문법 학습 팁:
• 들여쓰기는 Python의 핵심이므로 반드시 숙지하자
• 에러 메시지를 주의 깊게 읽고 이해하자
• PEP 8 스타일 가이드를 따라 일관된 코드를 작성하자
• 의미 있는 변수명을 사용하자
• 주석을 적절히 활용하여 코드를 문서화하자
Python의 기본 문법을 이해했다면 이제 변수, 데이터 타입, 제어문 등 더 구체적인 Python 프로그래밍 요소들을 학습할 준비가 되었다. 들여쓰기와 기본 문법 규칙을 잘 기억하고 다음 단계로 넘어가자.