Basic Syntax#
Python의 기본 구문법은 코드의 가독성과 일관성을 높이기 위해 간결하고 명확한 규칙을 따른다.
Python 기본 구조#
- Python은 C나 Java와 유사한 부분이 있으면서도 독특한 규칙을 가지고 있으며, “한 가지 분명하고 명백한 방법"으로 문제를 해결하도록 설계되었다.
- Python의 문법은 들여쓰기를 통해 코드 블록을 구분하므로, 코드의 구조가 시각적으로 드러나고 가독성이 높아진다.
실행 방식: 인터랙티브 모드와 스크립트 모드#
Python은 명령 프롬프트나 터미널에서 바로 코드를 입력할 수 있는 인터랙티브 모드와, .py 확장자를 가진 파일로 코드를 작성하여 실행하는 스크립트 모드를 지원한다.
예를 들어, 인터랙티브 모드에서 “Hello, World!“를 출력하는 코드는 다음과 같이 작성된다:
들여쓰기(Indentation)#
Python은 다른 언어와 달리 중괄호({}) 대신 들여쓰기로 코드 블록을 구분한다.
모든 코드 블록은 같은 수준의 들여쓰기를 유지해야 하며, 잘못된 들여쓰기는 구문 오류를 발생시킨다. 예를 들어, 올바른 if 문 코드는 다음과 같다:
1
2
3
4
| if True:
print("True")
else:
print("False")
|
문자열 표현과 인용(Quotations)#
- Python은 문자열을 표현할 때 작은따옴표(’ ‘), 큰따옴표(” “), 삼중따옴표(’’’ ’’’ 또는 "”” “”")를 사용할 수 있다.
- 삼중따옴표는 여러 줄에 걸친 문자열이나 문서화 문자열(docstring)을 작성할 때 유용하다.
Python에서 주석은 # 기호를 사용해 작성하며, 해당 줄의 나머지 부분은 인터프리터에 의해 무시된다.
한 줄 주석: #
기호로 시작하며, 해당 줄의 끝까지 주석으로 처리된다.
1
2
| # 이것은 한 줄 주석입니다.
print("Hello, World!") # 이 부분도 주석입니다.
|
여러 줄의 주석이 필요한 경우, 보통 여러 개의 # 기호를 사용하거나 삼중따옴표를 활용해 주석처럼 사용할 수 있다.
1
2
3
4
| """
이것은 여러 줄 주석입니다.
여러 줄에 걸쳐 작성할 수 있습니다.
"""
|
변수 및 데이터 타입#
Python은 변수 선언을 별도의 명령 없이, 단순히 값을 할당함으로써 이루어지며, 변수명은 식별 규칙을 따른다.
변수는 값을 저장하는 데 사용되며, 선언 시 데이터 타입을 명시하지 않아도 된다.
정수(int), 부동 소수점(float), 문자열(str), 불리언(Boolean) 등 다양한 기본 데이터 타입을 제공하며, 필요에 따라 자료형 변환도 가능하다.
1
2
3
4
| x = 5 # 정수형 변수
y = 3.14 # 실수형 변수
name = "Alice" # 문자열 변수
is_valid = True # 불리언 변수
|
기타 기본 문법 요소#
한 줄의 코드가 길어질 경우 백슬래시(\
로 줄바꿈을 하거나, 괄호 안에서 줄바꿈을 자유롭게 할 수 있다.
연산자#
Python에서는 산술 연산자(+, -, *, /)와 비교 연산자, 논리 연산자(그리고, 또는, 부정)를 사용해 연산을 수행한다.
산술 연산자: +
, -
, *
, /
, //
(몫), %
(나머지), **
(거듭제곱)
1
2
3
4
5
6
7
| a = 10
b = 3
print(a + b) # 13
print(a / b) # 3.333…
print(a // b) # 3
print(a % b) # 1
print(a ** b) # 1000
|
비교 연산자: ==
, !=
, <
, >
, <=
, >=
논리 연산자: and
, or
, not
조건문#
반복문#
def
키워드를 사용하여 함수를 정의한다.
1
2
3
4
| def greet(name):
return f"Hello, {name}!"
print(greet("Bob")) # "Hello, Bob!" 출력
|
리스트(List)와 딕셔너리(Dictionary)#
참고 및 출처#
Generator and Iterator 이터레이터는 값을 차례대로 반환하는 객체로, __iter__()와 __next__() 메서드를 구현한다.
제너레이터는 yield 키워드를 사용하여 값을 하나씩 반환하는 함수로, 이터레이터를 생성한다.
제너레이터와 이터레이터의 주요 차이점 비교 항목 이터레이터 제너레이터 정의 방식 __iter__와 __next__ 메서드를 구현하는 클래스 yield 키워드를 사용하는 함수 상태 저장 인스턴스 변수를 통해 명시적으로 상태 저장 함수의 실행 상태가 자동으로 저장 메모리 사용 모든 상태를 명시적으로 저장해야 함 필요한 값만 생성하여 메모리 효율적 구현 복잡도 상대적으로 복잡함 (여러 메서드 구현 필요) 매우 단순함 (일반 함수처럼 작성) 용도 복잡한 이터레이션 로직이 필요한 경우 간단한 순차적 데이터 생성 재사용성 클래스로 구현되어 재사용 용이 한 번 순회하면 소진됨 기능 확장성 클래스이므로 추가 메서드와 속성 정의 가능 함수 범위로 제한됨 성능 상태 관리를 위한 추가 오버헤드 존재 매우 가벼움 코드 가독성 구조화된 형태로 명확하나 장황할 수 있음 간결하고 직관적 양방향 통신 메서드를 통해 구현 가능 send() 메서드로 기본 제공 이러한 차이점들은 실제 사용에서 다음과 같은 의미를 가진다.
...
Generators 파이썬의 제너레이터(Generator)는 반복 가능한 객체를 생성하는 강력한 도구
제너레이터의 기능과 역할 메모리 효율성: 필요한 값만 생성하여 메모리를 절약합니다. 지연 평가: 필요할 때만 값을 생성하여 불필요한 연산을 피합니다. 무한 시퀀스 생성: 끝없는 데이터 스트림을 모델링할 수 있습니다. 복잡한 로직 간소화: 복잡한 반복 로직을 간단하게 표현할 수 있습니다. 제너레이터의 특징 yield 키워드 사용: 함수 내에서 yield를 사용하여 값을 반환합니다. 상태 유지: 함수의 로컬 변수를 통해 내부 상태를 유지합니다. 이터레이터 프로토콜 준수: next() 함수를 통해 값을 하나씩 가져올 수 있습니다. StopIteration 예외: 모든 값을 생성한 후 StopIteration 예외를 발생시킵니다. 제너레이터의 주요 장점 메모리 효율성:
...
연산자(Operators) 연산자는 프로그래밍의 기본적인 구성 요소로, 데이터를 조작하고 계산하는 데 사용된다.
산술 연산자 산술 연산자는 수학적 계산을 수행한다.
연산자 의미 예시 결과 + 덧셈 5 + 3 8 - 뺄셈 5 - 3 2 * 곱셈 5 * 3 15 / 나눗셈 5 / 3 1.6666… // 몫 5 // 3 1 % 나머지 5 % 3 2 ** 거듭제곱 5 ** 3 125 비교 연산자 비교 연산자는 값을 비교하고 불리언 결과를 반환한다.
...
Data Types Python은 동적 타입 언어로, 변수를 선언할 때 명시적으로 타입을 지정할 필요가 없다.
하지만 각 데이터 타입을 이해하는 것은 효율적인 코딩과 디버깅에 필수적이다.
숫자형 (Numeric) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 정수형 (Integer): 양의 정수, 음의 정수, 0을 포함하는 숫자형 age = 25 population = 1000000000000 # Python3는 정수 크기 제한이 없습니다 print(type(age)) # <class 'int'> print(type(population)) # <class 'int'> # 부동소수점 (Float): 소수점을 포함하는 숫자형 height = 175.5 pi = 3.14159 print(type(height)) # <class 'float'> print(type(pi)) # <class 'float'> # 복소수 (Complex): 실수부와 허수부로 구성된 숫자형 complex_number = 3 + 4j print(complex_number.real) # 실수부: 3.0 print(complex_number.imag) # 허수부: 4.0 print(type(complex_number)) # <class 'complex'> 문자열 (str) 문자들의 집합으로, 작은따옴표(’’)나 큰따옴표("")로 감싸서 표현한다.
...
Classes Python의 클래스(class)는 객체 지향 프로그래밍의 핵심 개념으로, 데이터와 그 데이터를 조작하는 메서드를 하나의 단위로 묶는 틀이다.
Python의 클래스는 코드의 재사용성을 높이고, 복잡한 프로그램을 구조화하는 데 도움을 준다. 객체 지향 프로그래밍의 원칙을 따르면서도 Python 특유의 간결함과 유연성을 제공한다.
클래스의 정의와 구조 클래스는 ‘class’ 키워드를 사용하여 정의한다:
일반적으로 클래스 이름은 대문자로 시작하는 카멜 케이스(CamelCase) 를 사용한다.
1 2 3 4 5 6 class ClassName: def __init__(self, parameters): self.attribute = parameters def method(self): # 메서드 내용 __init__ 메서드: 클래스의 생성자로, 객체 초기화에 사용된다. self: 클래스 자신을 가리키는 참조로, 모든 메서드의 첫 번째 매개변수로 사용된다. 객체와 인스턴스 객체(Object): 클래스로부터 생성된 실체이다. 인스턴스(Instance): 클래스의 특정 객체를 가리킨다. 1 p = Person() # Person 클래스의 인스턴스 생성 변수 인스턴스 변수: 각 객체마다 별도로 존재하는 변수로, self를 사용하여 정의한다. 클래스 변수: 클래스 자체에 속하며, 모든 객체가 공유하는 변수이다. 1 2 3 4 5 class Dog: species = "Canis familiaris" # 클래스 변수 def __init__(self, name): self.name = name # 인스턴스 변수 1 2 3 4 5 dog1 = Dog("Buddy") dog2 = Dog("Molly") print(dog1.species) # 출력: Canis familiaris print(dog2.species) # 출력: Canis familiaris 상속(Inheritance) 상속을 통해 기존 클래스의 속성과 메서드를 새로운 클래스에서 재사용할 수 있다.
...
Conditionals Python의 조건문(Conditional Statements)은 프로그램의 흐름을 제어하는 데 사용된다.
조건문은 특정 조건이 참(True)인지 거짓(False)인지에 따라 코드 블록을 실행하거나 건너뛰도록 한다.
Python의 주요 조건문 If 문
if 문은 가장 기본적인 조건문으로, 조건이 참일 때만 코드 블록을 실행한다.
구문:
1 2 if 조건: # 실행할 코드 예시:
1 2 3 number = 5 if number > 0: print("양수입니다.") 출력: 양수입니다.
If-else 문
if-else 문은 조건이 참일 때와 거짓일 때 각각 다른 코드 블록을 실행하도록 한다.
구문:
...
Python Keywords 파이썬에서 이미 예약되어있는 문자열
카테고리 키워드 설명 사용 예시 제어 흐름 if 조건문을 시작 if x > 0: elif else if의 축약형, 추가 조건 검사 elif x == 0: else 조건이 모두 거짓일 때 실행 else: for 반복문 시작 for i in range(5): while 조건이 참인 동안 반복 while x > 0: break 반복문을 즉시 종료 break continue 현재 반복을 건너뛰고 다음 반복으로 continue 예외 처리 try 예외가 발생할 수 있는 코드 블록 시작 try: except 예외 처리 블록 except ValueError: finally 예외 발생 여부와 관계없이 실행 finally: raise 예외를 강제로 발생시키는 데 사용 raise ValueError() assert 디버깅 목적으로 사용되는 가정 설정문 주어진 조건이 거짓일 때 AssertionError를 발생 assert x > 0 함수와 클래스 def 함수 정의 def func(): class 클래스 정의 class MyClass: return 함수에서 값을 반환하고 함수의 실행을 종료 return result yield 제너레이터 함수를 만드는 데 사용
함수의 실행을 일시 중지하고 값을 반환한 후, 다음 호출 시 중단된 지점부터 실행을 재개 yield value lambda 익명 함수 생성 lambda x: x*2 pass 아무것도 하지 않음을 명시 pass 변수 범위 global 전역 변수 선언 global var nonlocal 비지역 변수 선언 nonlocal var 논리 연산 and 논리곱 if x and y: or 논리합 if x or y: not 논리 부정 if not x: is 객체 식별 비교 if x is None: in 멤버십 테스트 if x in list: 비동기 처리 async 비동기 함수/코루틴 정의 async def func(): await 비동기 작업 대기 await func() 기타 import 모듈 가져오기 import math from 모듈에서 특정 항목 가져오기 from math import pi as 별칭 지정 import numpy as np del 객체 삭제 del variable 키워드들의 주요 특징과 사용 시 주의사항 제어 흐름 키워드:
...