AI/Python

파이썬 기초(자료 구조의 핵심)

jumemory 2025. 5. 21. 19:36

파이썬 기초: 데이터를 담는 그릇과 요리법

프로그래밍은 결국 **'데이터(재료)'**를 가져와서 **'로직(조리법)'**대로 처리하는 과정입니다. 이번 시간에는 파이썬에서 가장 기본이 되는 데이터의 형태와 이를 다루는 기초 문법을 알아보겠습니다.


1. 데이터의 입력과 출력 (I/O)

프로그램은 사용자와 소통해야 합니다. 그 가장 기본이 되는 도구입니다.

  • print(): 결과를 화면에 보여줍니다. 여러 결과를 출력할 때 print(x, end=',')처럼 end= 옵션을 사용하면 줄바꿈 대신 원하는 기호로 구분하여 나열할 수 있습니다.
  • input(): 사용자로부터 데이터를 입력받습니다. (주의: 모든 입력은 기본적으로 '문자열'로 취급됩니다.)

  • 출력 포맷팅: print(f"이름: {name}")처럼 문자열 중간에 변수를 넣어 가독성을 높입니다.

2. 데이터 타입과 리터럴 (Data Types & Literal)

  • 리터럴(Literal): 변수에 담기 전, 코드에 직접 작성된 값 그 자체(10, "Hello", True 등)를 의미합니다.
  • 기본 자료형:
    • 정수(int) / 실수(float): 숫자 데이터.
    • 문자열(str): 큰따옴표("")나 작은따옴표('')로 감싼 텍스트.
    • 논리값(bool): True, False (첫 글자가 대문자임에 주의).
  • 형변환(Casting): int("10")처럼 함수를 사용해 데이터의 형태를 바꿀 수 있습니다.

3. 파이썬의 연산자 (Operators)

파이썬은 수학적 계산뿐만 아니라 논리적인 비교도 수행합니다.

  • 산술 연산:
    • / : 나눗셈 (결과는 항상 실수형)
    • //: 몫만 구하기
    • % : 나머지만 구하기
    • **: 거듭제곱 (예: 2 ** 3은 8)
  • 논리 연산: and, or, not을 통해 여러 조건을 결합합니다. (우선순위: not > and > or)
  • 지수와 진법:
    • 지수: $1e10$ ($10^{10}$), $1e-3$ ($10^{-3}$)
    • 진법: 2진수(0b), 8진수(0o), 16진수(0x)

💡 연산자 우선순위 (계산 순서)

  1. ** (거듭제곱)
  2. - (단항 음수)
  3. *, /, //, % (곱셈, 나눗셈 등)
  4. +, - (덧셈, 뺄셈)

4. 시퀀스 자료형: 인덱싱과 슬라이싱

문자열이나 리스트처럼 순서가 있는 데이터를 다루는 핵심 기술입니다.

  • 인덱싱(Indexing): [n]으로 특정 위치의 값 하나를 추출합니다. (0부터 시작, -1은 마지막 항목)
  • 슬라이싱(Slicing): [시작:끝:간격] 형식으로 범위를 지정해 부분 데이터를 추출합니다.
    • text[0:5] : 0번부터 4번 인덱스까지 가져오기

5. 데이터 구조의 핵심 (List & Dictionary)

실제 AI 모델에 들어갈 데이터를 정제할 때 가장 많이 사용되는 구조입니다.

리스트 (List) []

  • 데이터를 순서대로 줄 세워 저장하는 바구니입니다.
  • 추가: .append()를 사용하여 새로운 데이터를 뒤에 추가합니다.

딕셔너리 (Dictionary) {Key: Value}

  • 키(Key)를 통해 값(Value)을 찾는 구조입니다. JSON 형식과 유사하여 데이터 분석에 필수적입니다.
  • 데이터 추가와 수정: tmp['a'] = 10 처럼 대괄호 안에 키를 지정하고 값을 할당합니다.
  • 복합 대입 연산: tmp[x] += 1은 tmp[x] = tmp[x] + 1과 같은 의미로, 기존 값에 1을 더해 다시 저장할 때 유용합니다.
  • ⚠️ 주의 (핵심 포인트): **리스트는 .append()**를 사용하지만, 딕셔너리는 ['키'] = 값 형식을 사용합니다. 딕셔너리에 .append()를 쓰면 AttributeError가 발생하니 주의하세요!
  • [심화 원리] 해시(Hash)와 검색 속도: 딕셔너리는 '해시 테이블'이라는 구조를 사용합니다. 리스트처럼 처음부터 끝까지 다 뒤지는 게 아니라, 키값을 넣으면 데이터가 있는 주소를 바로 계산해서 찾아갑니다. 덕분에 데이터가 아무리 많아도 검색 속도가 매우 빠릅니다.
자료형 기호 순서(시퀀스) 변경 가능 여부 중복 허용 핵심 특징
리스트 [] 있음 가능 (Mutable) 허용 순서 있는 값들의 모음
튜플 () 있음 불가능 (Immutable) 허용 리스트와 비슷하나 값 변경 불가
딕셔너리 {} 없음* 가능 (Mutable) 불가 (Key) 키와 값의 쌍으로 데이터 관리
세트 {} 없음 가능 (Mutable) 불가 수학적 집합 연산 및 중복 제거

 


💡 스스로 학습하는 팁: dir() 함수

"내가 만든 리스트에서 쓸 수 있는 기능이 뭐지?" 궁금할 때, dir() 함수를 사용해 보세요.

  • dir(list)나 dir(dict)를 입력하면 해당 자료형에서 사용할 수 있는 모든 메서드(기능) 목록을 출력해 줍니다. 모르는 기능이 나올 때마다 하나씩 구글링해 보는 것이 실력 향상의 지름길입니다.

 

문장일경우 """ """는 문자열을 나타냄)

 

2.type()함수를 통해서 데이터 타입을 확인할수있고,

 

help()

'AI > Python' 카테고리의 다른 글

통계 개념  (0) 2025.06.04
파이썬 기초(웹 크롤링)  (0) 2025.05.26
파이썬 기초(함수와 모듈)  (0) 2025.05.26
파이썬 기초(제어문)  (0) 2025.05.23
Python 시작  (0) 2025.05.21