728x90

DataBase에 아직 개념이 없는 사람에게 쉽게 경험해 볼수 있는 것을 찾다가 Python에서 sqlite3 라이브러리를 기본 제공해서 바로 사용할 수 있다고 해서 정리해 보았다.

 

예제1 일반예제

더보기

import sqlite3

# 1. DB 연결
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 2. 테이블 생성
cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT,
        age INTEGER
    )
''')

# 3. 데이터 삽입
cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('영희', 22))

# 4. 데이터 조회
cursor.execute('SELECT * FROM users')
for row in cursor.fetchall():
    print(row)

# 5. 저장 및 종료
conn.commit()
conn.close()

 

예제2 crud예제

더보기

import sqlite3

# 1. 데이터베이스 연결
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 2. 테이블 만들기
cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT,
        age INTEGER
    )
''')

# 3. 데이터 추가 (Create)
cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('철수', 12))
cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('영희', 11))

# 4. 데이터 조회 (Read)
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
print('초기 데이터:')
for row in rows:
    print(row)

# 5. 데이터 수정 (Update)
cursor.execute('UPDATE users SET age = ? WHERE name = ?', (13, '철수'))

# 6. 데이터 삭제 (Delete)
cursor.execute('DELETE FROM users WHERE name = ?', ('영희',))

# 7. 수정 후 데이터 조회
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
print('수정 후 데이터:')
for row in rows:
    print(row)

# 8. 저장하고 연결 닫기
conn.commit()
conn.close()

예제 설명

더보기
- 일반적으로 설명이 필요없는 단순 내용이지만 DB자체 경험이 없다면 코드로 인식이 어려울수 있으니 설명을 한다면 다음과 같다.

단계설명
1단계 sqlite3.connect('example.db') 로 데이터베이스 파일 연결
2단계 CREATE TABLE 문으로 users 테이블 만들기
3단계 INSERT INTO 문으로 데이터 추가 (철수 12살, 영희 11살)
4단계 SELECT * FROM users 로 데이터 조회 후 출력
5단계 UPDATE 문으로 철수 나이를 13살로 변경
6단계 DELETE 문으로 영희를 삭제
7단계 변경된 데이터를 다시 조회해서 출력
8단계 commit() 하고 close() 로 연결 종료
728x90
728x90

 자료형에 대해서 어느정도 숙지가 된 다음 활용하는 방법으로는 데이터 분석, 알고리즘, 그래픽 등이 좋아 보입니다.

 그중에 그래픽과 이벤트 등 흐름을 따라가면서 데이터를 구조화 하여 처리하는 것을 해보면 좋을 것 같아서 어떤 라이브러리가 좋을지 검토 중에 있습니다. 

 도형을 그리는 라이브러리를 알아보다가 그중에 pygame이 보여서 정리를 해보았습니다.

 

https://www.pygame.org/

 

pygame news

Over the next weeks we have plenty of game jams that people from the pygame communities take part in. The pygames hackathon runs from March 20th, 2023 to April 17th 2023, and is open to people in USA and Canada. For this one there's $12,700 in prizes. "If

www.pygame.org

1.기본 사용 방법

더보기

https://www.pygame.org/wiki/GettingStarted

 

GettingStarted - pygame wiki

Pygame Installation Pygame requires Python; if you don't already have it, you can download it from python.org. It's recommended to run the latest python version, because it's usually faster and has better features than the older ones. Bear in mind that pyg

www.pygame.org

1.1. os 별 설치 방법 가이드 확인

 

pip install pygame

 

https://www.pygame.org/docs/

 

Pygame Front Page — pygame v2.6.0 documentation

Pygame Front Page Quick start Welcome to pygame! Once you've got pygame installed (pip install pygame or pip3 install pygame for most people), the next question is how to get a game loop running. Pygame, unlike some other libraries, gives you full control

www.pygame.org

 

1.2. 기본 사용 예제

# Example file showing a basic pygame "game loop"
import pygame

# pygame setup
pygame.init()
screen = pygame.display.set_mode((1280, 720))
clock = pygame.time.Clock()
running = True

while running:
    # poll for events
    # pygame.QUIT event means the user clicked X to close your window
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # fill the screen with a color to wipe away anything from last frame
    screen.fill("purple")

    # RENDER YOUR GAME HERE

    # flip() the display to put your work on screen
    pygame.display.flip()

    clock.tick(60)  # limits FPS to 60

pygame.quit()

2. 이벤트와 키

더보기

2.1. 사용 예제

pygame.KEYDOWN 및 pygame.KEYUP 이벤트의 속성 mod 에 수정된 정보가 포함되어 있습니다.
mod 속성은 이벤트가 발생했을 때 눌려 있던 모든 수정자 키들의 비트 마스크입니다.
수정자 정보는 비트 연산자 AND를 사용하여 해독할 수 있습니다 (KMOD_NONE은 예외로, == 연산자를 사용하여 비교해야 합니다).

The modifier information is contained in the mod attribute of the pygame.KEYDOWN and pygame.KEYUP events. The mod attribute is a bitmask of all the modifier keys that were in a pressed state when the event occurred. The modifier information can be decoded using a bitwise AND (except for KMOD_NONE, which should be compared using equals ==). 

for event in pygame.event.get():
    if event.type == pygame.KEYDOWN or event.type == pygame.KEYUP:
        if event.mod == pygame.KMOD_NONE:
            print('No modifier keys were in a pressed state when this '
                  'event occurred.')
        else:
            if event.mod & pygame.KMOD_LSHIFT:
                print('Left shift was in a pressed state when this event '
                      'occurred.')
            if event.mod & pygame.KMOD_RSHIFT:
                print('Right shift was in a pressed state when this event '
                      'occurred.')
            if event.mod & pygame.KMOD_SHIFT:
                print('Left shift or right shift or both were in a '
                      'pressed state when this event occurred.')

 2.2. pygame의 이벤트

https://www.pygame.org/docs/ref/event.html#module-pygame.event

 

pygame.event — pygame v2.6.0 documentation

A pygame object used for representing an event. Event instances support attribute assignment and deletion. When creating the object, the attributes may come from a dictionary argument with string keys or from keyword arguments. Note From version 2.1.3 Even

www.pygame.org

타입              리턴
|----------------|-----------------------------------------------------|
QUIT              none
ACTIVEEVENT       gain, state
KEYDOWN           key, mod, unicode, scancode
KEYUP             key, mod, unicode, scancode
MOUSEMOTION       pos, rel, buttons, touch
MOUSEBUTTONUP     pos, button, touch
MOUSEBUTTONDOWN   pos, button, touch
JOYAXISMOTION     joy (deprecated), instance_id, axis, value
JOYBALLMOTION     joy (deprecated), instance_id, ball, rel
JOYHATMOTION      joy (deprecated), instance_id, hat, value
JOYBUTTONUP       joy (deprecated), instance_id, button
JOYBUTTONDOWN     joy (deprecated), instance_id, button
VIDEORESIZE       size, w, h
VIDEOEXPOSE       none
USEREVENT         code
|----------------|-----------------------------------------------------|
AUDIODEVICEADDED   which, iscapture (SDL backend >= 2.0.4)
AUDIODEVICEREMOVED which, iscapture (SDL backend >= 2.0.4)
FINGERMOTION       touch_id, finger_id, x, y, dx, dy
FINGERDOWN         touch_id, finger_id, x, y, dx, dy
FINGERUP           touch_id, finger_id, x, y, dx, dy
MOUSEWHEEL         which, flipped, x, y, touch, precise_x, precise_y
MULTIGESTURE       touch_id, x, y, pinched, rotated, num_fingers
TEXTEDITING        text, start, length
TEXTINPUT          text
|----------------|-----------------------------------------------------|


Event name               Attributes and notes
|----------------------|-----------------------------------------------|
DROPFILE                 file
DROPBEGIN                (SDL backend >= 2.0.5)
DROPCOMPLETE             (SDL backend >= 2.0.5)
DROPTEXT                 text (SDL backend >= 2.0.5)
MIDIIN
MIDIOUT
CONTROLLERDEVICEADDED    device_index
JOYDEVICEADDED           device_index
CONTROLLERDEVICEREMOVED  instance_id
JOYDEVICEREMOVED         instance_id
CONTROLLERDEVICEREMAPPED instance_id
KEYMAPCHANGED            (SDL backend >= 2.0.4)
CLIPBOARDUPDATE
RENDER_TARGETS_RESET     (SDL backend >= 2.0.2)
RENDER_DEVICE_RESET      (SDL backend >= 2.0.4)
LOCALECHANGED            (SDL backend >= 2.0.14)
|----------------------|-----------------------------------------------|
WINDOWSHOWN            Window became shown
WINDOWHIDDEN           Window became hidden
WINDOWEXPOSED          Window got updated by some external event
WINDOWMOVED            Window got moved
WINDOWRESIZED          Window got resized
WINDOWSIZECHANGED      Window changed its size
WINDOWMINIMIZED        Window was minimized
WINDOWMAXIMIZED        Window was maximized
WINDOWRESTORED         Window was restored
WINDOWENTER            Mouse entered the window
WINDOWLEAVE            Mouse left the window
WINDOWFOCUSGAINED      Window gained focus
WINDOWFOCUSLOST        Window lost focus
WINDOWCLOSE            Window was closed
WINDOWTAKEFOCUS        Window was offered focus (SDL backend >= 2.0.5)
WINDOWHITTEST          Window has a special hit test (SDL backend >= 2.0.5)
WINDOWICCPROFCHANGED   Window ICC profile changed (SDL backend >= 2.0.18)
WINDOWDISPLAYCHANGED   Window moved on a new display (SDL backend >= 2.0.18)

 2.3. key 와 ascii, 설명

Constant      ASCII   Description
---------------------------------
K_BACKSPACE   \b      backspace
K_TAB         \t      tab
K_CLEAR               clear
K_RETURN      \r      return
K_PAUSE               pause
K_ESCAPE      ^[      escape
K_SPACE               space
K_EXCLAIM     !       exclaim
K_QUOTEDBL    "       quotedbl
K_HASH        #       hash
K_DOLLAR      $       dollar
K_AMPERSAND   &       ampersand
K_QUOTE               quote
K_LEFTPAREN   (       left parenthesis
K_RIGHTPAREN  )       right parenthesis
K_ASTERISK    *       asterisk
K_PLUS        +       plus sign
K_COMMA       ,       comma
K_MINUS       -       minus sign
K_PERIOD      .       period
K_SLASH       /       forward slash
K_0           0       0
K_1           1       1
K_2           2       2
K_3           3       3
K_4           4       4
K_5           5       5
K_6           6       6
K_7           7       7
K_8           8       8
K_9           9       9
K_COLON       :       colon
K_SEMICOLON   ;       semicolon
K_LESS        <       less-than sign
K_EQUALS      =       equals sign
K_GREATER     >       greater-than sign
K_QUESTION    ?       question mark
K_AT          @       at
K_LEFTBRACKET [       left bracket
K_BACKSLASH   \       backslash
K_RIGHTBRACKET ]      right bracket
K_CARET       ^       caret
K_UNDERSCORE  _       underscore
K_BACKQUOTE   `       grave
K_a           a       a
K_b           b       b
K_c           c       c
K_d           d       d
K_e           e       e
K_f           f       f
K_g           g       g
K_h           h       h
K_i           i       i
K_j           j       j
K_k           k       k
K_l           l       l
K_m           m       m
K_n           n       n
K_o           o       o
K_p           p       p
K_q           q       q
K_r           r       r
K_s           s       s
K_t           t       t
K_u           u       u
K_v           v       v
K_w           w       w
K_x           x       x
K_y           y       y
K_z           z       z
K_DELETE              delete
K_KP0                 keypad 0
K_KP1                 keypad 1
K_KP2                 keypad 2
K_KP3                 keypad 3
K_KP4                 keypad 4
K_KP5                 keypad 5
K_KP6                 keypad 6
K_KP7                 keypad 7
K_KP8                 keypad 8
K_KP9                 keypad 9
K_KP_PERIOD   .       keypad period
K_KP_DIVIDE   /       keypad divide
K_KP_MULTIPLY *       keypad multiply
K_KP_MINUS    -       keypad minus
K_KP_PLUS     +       keypad plus
K_KP_ENTER    \r      keypad enter
K_KP_EQUALS   =       keypad equals
K_UP                  up arrow
K_DOWN                down arrow
K_RIGHT               right arrow
K_LEFT                left arrow
K_INSERT              insert
K_HOME                home
K_END                 end
K_PAGEUP              page up
K_PAGEDOWN            page down
K_F1                  F1
K_F2                  F2
K_F3                  F3
K_F4                  F4
K_F5                  F5
K_F6                  F6
K_F7                  F7
K_F8                  F8
K_F9                  F9
K_F10                 F10
K_F11                 F11
K_F12                 F12
K_F13                 F13
K_F14                 F14
K_F15                 F15
K_NUMLOCK             numlock
K_CAPSLOCK            capslock
K_SCROLLOCK           scrollock
K_RSHIFT              right shift
K_LSHIFT              left shift
K_RCTRL               right control
K_LCTRL               left control
K_RALT                right alt
K_LALT                left alt
K_RMETA               right meta
K_LMETA               left meta
K_LSUPER              left Windows key
K_RSUPER              right Windows key
K_MODE                mode shift
K_HELP                help
K_PRINT               print screen
K_SYSREQ              sysrq
K_BREAK               break
K_MENU                menu
K_POWER               power
K_EURO                Euro
K_AC_BACK             Android back button

 2.4. 키보드 입력 기계어 인식 정보

Constant      Description
-------------------------
KMOD_NONE     no modifier keys pressed
KMOD_LSHIFT   left shift
KMOD_RSHIFT   right shift
KMOD_SHIFT    left shift or right shift or both
KMOD_LCTRL    left control
KMOD_RCTRL    right control
KMOD_CTRL     left control or right control or both
KMOD_LALT     left alt
KMOD_RALT     right alt
KMOD_ALT      left alt or right alt or both
KMOD_LMETA    left meta
KMOD_RMETA    right meta
KMOD_META     left meta or right meta or both
KMOD_CAPS     caps lock
KMOD_NUM      num lock
KMOD_MODE     AltGr

 

 

3. 라이브러리 검토 후기

 기본 라이브러리 접근 방법과 이미지처리등은 직관적으로 알려주기 편하지만 이벤트와 키바인딩 정보 처리는 예제를 통해 알려주는 것이 필요해 보입니다.

 프레임 처리와 화면의 최대값과 움직이는 사물의 충돌 이벤트 정도를 알려주고 키보드 이벤트를 이용한 이동 이벤트 구현예제 정도가 제일 적정해 보이네요.

 

728x90
728x90

언어 별로 표준 함수 들은 유사한 기능들이 존재하지만 문법이 조금씩 달라서 정리해 보는 것이 좋을 것 같아 적어 보았다.

가장 많이 사용하는 함수 20개... 심화 학습까지 준비해 봅시다.

분류 라이브러리명 함수명 사용 문법 설명 예제 예제실행결과
데이터 분석 pandas read_csv pd.read_csv('file.csv') CSV 파일 읽기 pd.read_csv('data.csv') DataFrame 출력
데이터 분석 pandas DataFrame pd.DataFrame(data) 데이터프레임 생성 pd.DataFrame({'A':}) ADataFrame
수학 연산 numpy array np.array() 배열 생성 np.array() array()
수학 연산 math sqrt math.sqrt(x) 제곱근 계산 math.sqrt(9) 3.0
문자열 처리 built-in split str.split(sep) 문자열 분할 "a,b".split(",") ['a','b']
문자열 처리 re search re.search(pattern, string) 패턴 검색 re.search(r'\d','a1') <re.Match>
파일 처리 built-in open open(file, mode) 파일 열기 open('test.txt').read() 파일 내용
파일 처리 os listdir os.listdir(path) 디렉토리 목록 os.listdir('.') 파일리스트
날짜/시간 datetime now datetime.now() 현재 시간 datetime.now() 현재시간출력
날짜/시간 pandas to_datetime pd.to_datetime(str) 날짜 변환 pd.to_datetime('2023-01-01') Timestamp
데이터 시각화 matplotlib plot plt.plot(x,y)  그래프 plt.plot(,[3, 그래프 출력
데이터 시각화 seaborn barplot sns.barplot(x,y,data) 막대 그래프 sns.barplot(x='A',y='B',data=df) 그래프
머신러닝 sklearn train_test_split train_test_split(X,y) 데이터 분할 X_train, X_test = ... 분할데이터
머신러닝 tensorflow Sequential tf.keras.Sequential() 모델 생성 model = Sequential() 모델객체
 개발 flask Flask Flask(name)  생성 app = Flask(name) 앱객체
 개발 requests get requests.get(url) HTTP 요청 http://ex.com 응답객체
데이터베이스 sqlite3 connect sqlite3.connect(db) DB 연결 conn = sqlite3.connect('test.db') 연결객체
데이터베이스 pymongo find collection.find(query) 문서 조회 db.col.find({}) 커서객체
병렬 처리 threading Thread threading.Thread(target) 스레드 생성 t = Thread(target=func) 스레드객체
병렬 처리 multiprocessing Process Process(target) 프로세스 생성 p = Process(target=func) 프로세스
728x90
728x90

 인공지능관련해서 제일 많이 찾는 언어가 파이썬 이고 기초개념을 알고 있으면 도움이 될것 같아서 강의 좌료를 만들어 보았습니다.

 활용도가 넓기 때문에 기초 범위를 산정하는 것이 제일 어렵다면 어려운 부분이었습니다.

 

 실제 실무에서는 심화된 내용이 필요하겠지만 기초는 언제나 중요하다고 생각하여 진행하였고 대상은 초등학생 6학년도 따라 해볼 수 있는 프로그램 초보를 대상으로 산정했습니다. 

 실제 가르치면서 개발을 모르는 사람에게 설명하기에 어려운 부분이 발생하였고, 소스코드를 경험하게하고 설명하는 것이 더 효과적이라 생각해서 예시가 설명보다 먼저 나오게 반영한 부분도 있습니다.

 5일차까지 검토하고 진행 결과 3일차 자료형에 대한 설명과 실습의 내용이 많고 반복학습의 필요성이 발생했습니다.

------------- ------------ ------------ -------------- ---------------

초등학생용 자료가 끝나면 대학생 기준으로 교안을 갱신하고, 이후 초급 개발자 기준으로 교안을 다듬는 것을 진행할 예정입니다.

매주 4시간씩 잘 따라와 주는 아들에게 감사하며 일차 교안을 만들고 가르치면서 수정하고 있습니다.

(2025.4.12 정리하며... 내일 6일차 학습이 예정 )

------------- ------------ ------------ -------------- ---------------

상세 교안 7일차 완료 

실습을 고려하여 표지와 학습목표 각각 1장씩, 복습2장, 학습 4장 과제2장 총 10장의 강의 자료 구성

연관된 내용을 설명하기에는 기초 학습 차이가 있어서 부가설명 발생시 30분 초과 수업 발생

학습자 선행 학습정도에 맞춰 설명 난이도 조절 필요.

그래픽 작업을 데이터 작업보다 관심을 보임- 적절한 실습 혼합예제 작성 필요. 

파이썬 교육 1안: 15일 완성 과정 (초등학교 6학년 대상)

✅ 1주차: 파이썬 기초 문법과 프로그래밍 감각 익히기

1일차 - 파이썬 소개와 기본 문법

  • 파이썬이란 무엇인가? 어디에 쓰이나요?
  • 변수, 데이터 타입 (숫자, 글자, 참/거짓)
  • 연산자(+, -, *, /, %, //, **)
  • 실습: 계산기 만들기, 나이 계산기

2일차 - 조건문과 반복문

  • if / elif / else 문법
  • 비교와 논리 연산자
  • for / while 반복문, break / continue
  • 실습: 숫자 맞히기 게임, 구구단 출력

3일차 - 리스트, 튜플, 집합

  • 리스트와 튜플 사용법 (저장, 꺼내기, 추가, 삭제)
  • 집합(Set)의 개념과 활용
  • 실습: 반 친구 명단 만들기, 좋아하는 과목 중복 제거하기

4일차 - 함수와 모듈

  • 함수 만들기, 입력값과 출력값 이해
  • 기본값 매개변수, 키워드 인자
  • 모듈 불러오기 (math, random)
  • 실습: 나만의 계산기 함수 만들기, 랜덤 퀴즈 생성기

✅ 2주차: 파일 입출력, 클래스와 객체 학습

5일차 - 파일 입출력 + 예외 처리

  • 텍스트 파일 열기/쓰기/읽기 (open, read, write, close)
  • with open을 사용한 안전한 파일 사용
  • try / except로 예외 처리하기
  • 실습:
    • 메모장 만들기 (입력한 내용을 txt 파일로 저장)
    • 할 일(To-do) 목록 저장하고 불러오기
    • 잘못된 입력이 들어왔을 때 에러 메시지 보여주기

6일차 - 클래스와 객체   

  • 클래스, 객체, 속성, 메서드 배우기
  • 클래스 만들기, 객체 만들기
  • 실습:
    • 클래스 예제 만들어보기
    • 클래스를 이용해서 객체 만들어보기
    • 클래스와 객체 확장 적용해 보기

7일차 - 상속과 Override 그리고 OverLoad ------------ (2025.04.20일 작성)

  • 상속이란? 부모 자식 클래스 만들기
  • 오버라이드 와 기본값을 이용한 오버로드 구현
  • 외부라이브러리 사용 그래픽함수 체험
  • 실습:
    • 클래스 상속과 자식 클래스 출력값 변화
    • 파라메터 변화에 따른 처리
    • 대표적인 라이브러리를 사용한 삼각형, 사각형, 원형 도형 그리기

8일차 - 표준 라이브러리 활용 ----------- (2025.04.27일 작성)

  • 네이밍 규칙을 배우고 표준사용법 배우기
  • 자주 사용하는 표준 함수 예제 사용해보기
  • SQLite 사용해보기
  • 실습:
    • 일반적으로 사용한다는 20개의 함수에 대해서 예제을 사용해보기
    • SQLite 를 사용해서 DB 경험해보기

✅ 3주차: 알고리즘 <- 데이터 처리와 데이터 시각화

9일차 - 파이썬으로 데이터 다루기

  • 스택
  • 데크
  • 해쉬 테이블
  • 실습:
    • 선형데이터 구조에 맞춰 데이터 넣고 불러오기
    • LIFO, FIFO 를 연습해보기

10일차 - 데이터 처리 알고리즘 ( 정렬, 검색 등 )

  • 기본 정렬 알고리즘 : 버블 정렬, 선택 정렬
  • 그외 정렬 알고리즘 : 삽입정렬, 퀵정렬, 병합정렬
  • 데이터 검색 알고리즘 : 선형탐색, 이진 탐색
  • 실습:
    • 짝수만 뽑기 (filter 사용)
    • 버블 정렬로 점수 정렬하기
    • 정렬 + 이진 탐색 연결 실습

11일차 - 데이터를 그림으로 보기

  • 데이터를 모아서 정리하는 방법 배우기
  • 데이터 시각화 : (막대 그래프, 선그래프, 원그래프)
  • 실습:
    • 반 친구들 키 데이터 시각화
    • 과목별 점수 그래프 만들기

12일차 - 응용 알고리즘

  • 그리디 알고리즘
  • 브루트 포스
  • 간단한 재귀 알고리즘
  • 실습:
    • 알고리즘 문제 풀어보기
    • 재귀 문제


 

 

 


 

 

✅ 4주차: 응용문제

( 전면 재 구성 목표는 웹서비스 지원 API 구성을 목적이며 실용적인 내용을 추가하는 것이 필요하다. )

 

13일차 - 벽돌꺠기 프로그램

  • pygame 기본 설정
  • 볼, 패드, 벽돌 각 특성 설정
  • 게임 이벤트 정의
  • 실습:
    • 기본설정 확인
    • 구성요소만들기
    • 게임 이벤트핸들링
    • 스코어

14일차 - 프로젝트 3: 웹 API 서버 만들기 (Flask)

  • Flask로 간단한 서버 만들기
  • app.route로 기능 나누기
  • 실습:
    • 날씨 데이터 JSON으로 응답하기
    • To-do 리스트를 API로 제공하기

15일차 - 고급 문법: 람다, 데코레이터, 제너레이터

  • 람다 함수로 간단하게 표현하기
  • 함수 꾸미기 (데코레이터)
  • yield로 데이터를 조금씩 전달하기
  • 실습:
    • 점수 필터링 (filter 사용)
    • 로그 출력 데코레이터 만들기
728x90

+ Recent posts