Python이란 무엇인가?
Python은 1991년 귀도 반 로섬(Guido van Rossum)이 개발한 고급 프로그래밍 언어로, 간결하고 읽기 쉬운 문법으로 전 세계 개발자들에게 사랑받고 있습니다. 특히 초보자도 쉽게 배울 수 있으면서도, 인공지능, 데이터 분석, 웹 개발 등 다양한 분야에서 활용되는 강력한 언어입니다.
Python의 철학은 “간결함이 복잡함보다 낫다(Simple is better than complex)”입니다. 이는 Python Zen에 명시된 핵심 원칙 중 하나입니다.
Python의 주요 특징
| 특징 | 설명 | 장점 |
|---|---|---|
| 읽기 쉬운 문법 | 영어와 유사한 직관적 구조 | 학습 곡선이 낮고 유지보수 용이 |
| 인터프리터 언어 | 컴파일 없이 즉시 실행 | 빠른 개발 및 테스트 가능 |
| 동적 타입 | 변수 타입을 자동으로 결정 | 코드 작성이 간편하고 유연함 |
| 풍부한 라이브러리 | NumPy, Pandas, Django 등 | 다양한 분야에 즉시 적용 가능 |
| 크로스 플랫폼 | Windows, Mac, Linux 지원 | 환경에 구애받지 않음 |
Python의 기본 문법
변수와 데이터 타입
Python에서는 변수를 선언할 때 타입을 명시할 필요가 없습니다. 값을 할당하면 자동으로 타입이 결정됩니다.
# 숫자형
age = 25
pi = 3.14159
# 문자열
name = "김개발"
greeting = '안녕하세요!'
# 불린
is_student = True
has_job = False
# 리스트
fruits = ["사과", "바나나", "오렌지"]
numbers = [1, 2, 3, 4, 5]
# 딕셔너리
person = {
"name": "김개발",
"age": 25,
"city": "서울"
}
조건문과 반복문
Python의 가장 큰 특징은 들여쓰기(indentation)로 코드 블록을 구분한다는 점입니다.
# if 조건문
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
else:
grade = "C"
print(f"당신의 성적은 {grade}입니다.")
# for 반복문
fruits = ["사과", "바나나", "오렌지"]
for fruit in fruits:
print(f"나는 {fruit}을 좋아합니다.")
# while 반복문
count = 0
while count < 5:
print(f"카운트: {count}")
count += 1
함수 정의
함수는 def 키워드를 사용하여 정의하며, 코드의 재사용성을 높여줍니다.
# 기본 함수
def greet(name):
return f"안녕하세요, {name}님!"
print(greet("김개발")) # 출력: 안녕하세요, 김개발님!
# 기본값이 있는 함수
def calculate_area(width, height=10):
return width * height
print(calculate_area(5)) # 출력: 50
print(calculate_area(5, 20)) # 출력: 100
# 여러 값 반환
def get_stats(numbers):
return sum(numbers), len(numbers), sum(numbers) / len(numbers)
total, count, average = get_stats([1, 2, 3, 4, 5])
print(f"합계: {total}, 개수: {count}, 평균: {average}")
실무에서 자주 사용하는 Python 기능
리스트 컴프리헨션
리스트 컴프리헨션은 간결한 코드로 리스트를 생성하는 Python의 강력한 기능입니다.
# 기본 for 문
squares = []
for i in range(10):
squares.append(i ** 2)
# 리스트 컴프리헨션 (더 간결)
squares = [i ** 2 for i in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 조건부 필터링
even_squares = [i ** 2 for i in range(10) if i % 2 == 0]
print(even_squares) # [0, 4, 16, 36, 64]
파일 입출력
파일을 읽고 쓰는 작업은 실무에서 매우 빈번합니다.
# 파일 쓰기
with open("example.txt", "w", encoding="utf-8") as f:
f.write("안녕하세요, Python!\n")
f.write("파일 입출력을 배우고 있습니다.")
# 파일 읽기
with open("example.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
# 한 줄씩 읽기
with open("example.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip())
with구문을 사용하면 파일을 자동으로 닫아주므로, 리소스 관리가 안전합니다.
예외 처리
프로그램 실행 중 발생할 수 있는 오류를 처리하는 것은 필수적입니다.
try:
number = int(input("숫자를 입력하세요: "))
result = 100 / number
print(f"결과: {result}")
except ValueError:
print("올바른 숫자를 입력해주세요.")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
except Exception as e:
print(f"예상치 못한 오류: {e}")
finally:
print("프로그램을 종료합니다.")
Python 실무 활용 사례
데이터 분석
Pandas 라이브러리를 사용하면 엑셀과 같은 데이터 처리가 가능합니다.
import pandas as pd
# CSV 파일 읽기
df = pd.read_csv("sales_data.csv")
# 데이터 요약 통계
print(df.describe())
# 특정 조건 필터링
high_sales = df[df["sales"] > 10000]
# 그룹별 집계
monthly_sales = df.groupby("month")["sales"].sum()
print(monthly_sales)
웹 스크래핑
BeautifulSoup을 사용하면 웹 페이지에서 데이터를 추출할 수 있습니다.
import requests
from bs4 import BeautifulSoup
# 웹 페이지 가져오기
response = requests.get("https://example.com")
soup = BeautifulSoup(response.text, "html.parser")
# 제목 추출
titles = soup.find_all("h2", class_="post-title")
for title in titles:
print(title.text.strip())
자동화 스크립트
반복적인 작업을 자동화하여 생산성을 높일 수 있습니다.
import os
import shutil
from datetime import datetime
# 파일 정리 자동화
def organize_files(directory):
for filename in os.listdir(directory):
if filename.endswith(".jpg") or filename.endswith(".png"):
# 이미지 폴더로 이동
shutil.move(
os.path.join(directory, filename),
os.path.join(directory, "images", filename)
)
elif filename.endswith(".pdf"):
# PDF 폴더로 이동
shutil.move(
os.path.join(directory, filename),
os.path.join(directory, "documents", filename)
)
organize_files("/path/to/downloads")
Python 학습 로드맵
| 단계 | 학습 내용 | 예상 기간 |
|---|---|---|
| 1단계 | 기본 문법, 변수, 조건문, 반복문 | 1~2주 |
| 2단계 | 함수, 리스트/딕셔너리, 파일 입출력 | 2~3주 |
| 3단계 | 객체지향 프로그래밍, 모듈/패키지 | 3~4주 |
| 4단계 | 외부 라이브러리 활용 (NumPy, Pandas) | 4~6주 |
| 5단계 | 실전 프로젝트 (웹 크롤링, 데이터 분석 등) | 진행 중 |
프로그래밍은 이론보다 실습이 중요합니다. 매일 코드를 작성하고, 작은 프로젝트를 만들어보세요!
마무리
Python은 초보자도 쉽게 시작할 수 있으면서도, 전문가 수준의 프로젝트까지 구현 가능한 강력한 언어입니다. 간결한 문법, 풍부한 라이브러리, 활발한 커뮤니티 덕분에 프로그래밍 입문 언어로 최적의 선택입니다.
핵심 포인트를 정리하면:
- Python은 읽기 쉽고 배우기 쉬운 언어입니다
- 다양한 분야(데이터 분석, AI, 웹 개발 등)에서 활용됩니다
- 풍부한 라이브러리로 빠른 개발이 가능합니다
- 실습 중심으로 학습하면 빠르게 실력을 향상시킬 수 있습니다
지금 바로 Python으로 첫 프로그램을 작성해보세요. print("Hello, World!")부터 시작하는 여러분의 프로그래밍 여정을 응원합니다!
Did you find this helpful?
☕ Buy me a coffee
Leave a Reply