세찬하늘
[데이터컴퓨팅] 수업소개 및 파이썬 기초(1) 본문
1학기 컴퓨팅 수업 내용 중 1차시 정리
수업내용 요약 정리
- 강의 특징 및 주요 학습 내용 소개
- 강의 형태 및 주의점, 일정 소개
- 강의내용 목차 소개
- 파이썬 기초(자료형부터 ~)
수업내용은 수업시간에 다룬 키워드, 개념들 위주로 정리합니다.
1. 알고리즘
알고리즘은 문제 해결을 위한 명확한 절차를 의미합니다.
요리의 레시피처럼 단계가 정확히 정해져 있고, 반드시 끝이 있습니다.
- 유한성: 반드시 끝이 있어야 함(무한루프는 알고리즘이 아니다)
- 명확성: 단계마다 모호하지 않고 명확해야 함
- 예시: 숫자 정렬 알고리즘 (예: sort 정렬 - 숫자끼리 비교하여 순서를 바꾸는 방식)
2. 알고리즘 평가 요소(복잡도는 다음 차시에)
- 시간 복잡도: 알고리즘 실행 시 걸리는 시간 측정
- 공간 복잡도: 알고리즘 실행 시 사용하는 메모리 양
3. 자료 구조 개념과 종류
자료 구조는 데이터를 저장하는 방식이며, 상황에 맞게 효율적인 구조를 선택해야 합니다.
- 리스트: 여러 데이터를 순서대로 저장
- 예: 학생 명단 ["철수", "영희", "민수"]
- 스택(Stack): 후입선출(LIFO)
- 예시: 인터넷 브라우저의 뒤로 가기 버튼
- 큐(Queue): 선입선출(FIFO)
- 예시: 은행이나 식당에서 줄 서기
- 해시 테이블(Hash Table): 빠르게 데이터를 찾기 위한 키(key)-값(value) 쌍으로 이루어짐
- 예시: 전화번호부 (이름(key) → 전화번호(value))
파이썬 언어의 특징
- 객체지향언어
- 인터프리터 언어: 컴파일 없이 즉시 실행 가능, 한줄씩 순서대로
- 동적 타입 언어: 변수를 사용할 때 데이터 타입을 미리 지정하지 않아도 됨, 직관적임
파이썬 주요 데이터 타입
- 숫자(Number)
- 정수(int), 실수(float), 복소수(complex)
- 예시:
x = 10 # int y = 3.14 # float z = 1 + 2j # 복소수
- 불리언(Boolean)
- 참(True), 거짓(False)
- 예시:
a = True b = False
- 시퀀스(Sequence)
- 여러 데이터를 순서대로 저장하는 타입
- 문자열(string), 리스트(list), 튜플(tuple) 등이 포함됨
- 예시:
str_example = "Hello" my_list = [1, 2, 3, "apple"] # 리스트: 변경 가능 my_tuple = (1, 2, 3) # 변경 불가능
- 딕셔너리(Dictionary)
- 키(Key)-값(Value) 쌍으로 데이터를 저장하는 타입
- 예시:
student = {"name": "홍길동", "age": 25}
리스트의 특징
- 순서가 있고 변경 가능(mutable)함
- 인덱스를 사용하여 특정 데이터 접근 가능
- 예시:
fruits = ["사과", "바나나", "포도"] fruits[0] # '홍길동' 접근
- 인덱스(index)는 0부터 시작
슬라이싱(Slicing)
- 리스트나 문자열의 일부를 잘라서 가져오는 방법
- 문법: [시작인덱스:끝인덱스] (끝 인덱스는 미포함)
- 예시:
data = ["A", "B", "C", "D", "E"] print(data[1:3]) # 결과는 ['B', 'C']
동적 타이핑
- 변수가 처음 선언된 이후에도 다른 데이터 타입의 값을 넣을 수 있음
- 예시:
x = 10 # 정수 x = "hello" # 문자열로 변경 가능