파이썬 프로그래밍 - 파이썬 수업

김태희·2025년 2월 4일

1. Intro


알고리즘

  • 컴퓨터가 따라가는 논리적인 스텝

프로그램

  • 알고리즘 번역한 거
  • 특정 프로그래밍 언어로 쓰여있어야함

Defining

Combining(Reusing)

애매함이 전혀 없어야함

2. abstrction


추상화

사람이 한계가 있어서 추상화 필요

3. hello python


/ 소수점나오는 나눗셈

// 몫만 나오는 나눗셈

% 나머지

** 제곱

우선순위

**

-(음수)

*, /, //, %

+, -

int float

function 속에 function 넣을 수 있다

변수 이름은

  • 숫자로 시작 못하고
  • 띄어쓰기 못함

= 는 같다는 뜻이 아님

x, y = 1, 2

y, x = x, y 가능

이름(id) 안에 주소(address) 따라가면 value

할당 다시할때 자리를 차지하는게 아니라

다른 주소로 가는 느낌임

4. function


들여쓰기 있어야함

지역변수 : 임시적

전역변수가 기본

5. reassignment practice


float

  • 8/4
  • 2.0-2.0+2
  • 2*1.0
  • min(3, 2.0)
  • max(2.0, 2)

6. strings


str

  • len
      • 스트링끼리 더해서 연결
      • ‘I’+’like’+’you’
      • 스트링끼리 곱하기
      • “hi”*5
  • \
    • \’, \”, \, \t, \n, \r

boolean type

  • True
  • False
  • , <, >=, <=, ==, !=

  • 숏컷
    • 에러를 띄워야하는데 읽지 않으니까 좋은 건 아님
  • “” in “” → True

조건문

  • IF
  • Else

7. modules


import math

import math as my_math

A.B

  • A로 찾아가서 B라는 이름을 찾아라

모듈 변수의 값을 변경할 수 있으나 하지마라!

내장함수도 변수이름으로 사용하지 말아라!

import * 하지마라

모듈은 파일 이름이 모듈

클래스는 여러개 양산 object들을 만들 수 있다

매소드는 클래스 안에 있는 함수 (파라미터 일일히 안 써도 됨)

나를 포함하는 클래스 object가 디폴트로 알규먼트에 들어감

9. lists


리스트는

  • 순서가 있다

  • 유연하다

  • 검색 느림

  • 수정할 수 있다

  • []

  • 0 1 2 3

  • -4 -3 -2 -1

리스트 안에 리스트

  • 수정 가능

리스트 메소드

  • append
    • 새로운 걸 맨 마지막에
  • insert
    • 한 칸씩 밀림
  • students.sort(reverse=True)
    • 내림차순

카피

  • 슬라이싱 사용
  • 원본 영향x

Alias

  • 이름 사용
  • 아예 똑같다

10. loops


내림차순 하려면

start>stop, step<0

break

  • 해당하는 반복문을 나간다

continue

  • 반복문을 계속 돈다

반복문 문제점

: 무한반복

11. sets


sets

  • 순서없고
    • 몇 번째 가져오기 불가능
  • 중복x
  • 검색기능이 빠르다
    • 해싱때문에
  • set은 수정 가능
    • add remove 가능
      • 순서 없으므로 위치 지정 불가능
    • BUT, 요소는 수정 불가능
  • 비어있는 중괄호 쓰면 안 됨
    • 비어있는 set는
      • a = set() 이렇게 써야 함
  • {”a“, “b”}
  • 반복이 없고 순서가 필요하지 않은 조건에서 hashing 쓸 수 있음

tuples

  • 읽기 전용
  • 순서 있다
  • 유연하다
  • 검색 느림
  • 튜플은 수정 안 되는데 튜플 안에 있는 리스트 같은 거를 건드리면 수정 가능
  • add나 remove 이런 거 없음
  • 한 개짜리는 컴마 해야함
    • (8,)
    • (5+3,)

딕셔너리

  • 키 중복 안 됨
  • 검색 빠름
  • {}
  • 키, 값
  • 메소드
    • ex) dict_grades.pop(k,v)
      • 없으면 없다는 뜻으로 v를 보여줘

비교

기호순서 있는지수정 가능한지중복 가능한지
리스트[OOO
세트{XO (요소는 불가능)X
튜플(OX (요소가 수정 가능하면 가능)O
딕셔너리{어느 버전부터는 있음O키: X, 값: O

12. file io


  • file = open(’file_example.txt’, ‘r’)

    • r : 읽기 모드
    • w : 쓰기 모드
    • a : 뒤에다가 덧붙일 때
  • current location

    • 커서
    • 현재 주목하는 부분

경로

  • 절대경로
    • /로 시작
  • 상대경로
    • ../
    • 윗 디렉토리로 감
  • 경로 알려주기
    import os
    
    os.getcwd() # 현재 경로 알려주기 (커랜트 월킹 디렉토리)
    
    os.chdir("/User/hskim/Desktop") # 경로 바꾸기 (체인지 디렉토리)
.read()파일 전체를 문자열로 반환파일 전체를 한 번에 읽기. 메모리 많이 사용
.readline()한 줄을 문자열로 반환한 번에 한 줄씩 읽기. 반복문 사용 가능
.readlines()모든 줄을 리스트로 반환모든 줄을 리스트로 저장
  • lines.strip()

    • 양 끝에 공백 제거
  • line = line.decode(”utf-8”)

  • 헤더 스킵하는 방법

    line = skip_header(input_file)

  • 에러 해결

    if line != ‘-’:

13. object-oriented programming


4원칙

  • Encapsulation
    • 캡슐 안에 넣는다
  • Abstraction
    • 숨기고 필요한 것만 오픈한다
  • Inheritance
    • 상속
  • Polymorphism
    • 다형성
  1. 캡슐화: 관련 데이터를 객체로 묶어 관리.
  2. 추상화: 내부 구현을 감추고 인터페이스만 제공.
  3. 상속: 부모 클래스의 속성과 메서드를 자식 클래스에서 재사용.
  4. 다형성: 동일한 이름의 메서드가 객체에 따라 다르게 동작.
profile
내 벨로그

0개의 댓글