[๋”ฅ๋Ÿฌ๋‹] ์„ ํ˜• ํšŒ๊ท€(Linear Regression)
ยท
๐Ÿ Python/Deep Learning
์ง€๋„ ํ•™์Šต์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ์„ธ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 1. ์„ ํ˜• ํšŒ๊ท€ ( Linear Regression ) : 3์›” : 60์ , 6์›” : 70์ , 9์›” : 80์ ์ด๋ผ๋ฉด, 12์›”์€ ๋ช‡ ์ ์ผ๊นŒ? 2. ์ด์ง„ ๋ถ„๋ฅ˜ ( Binary Classification ) : [0, 1], [True, False], [๊ฐœ, ๊ณ ์–‘์ด] 3. ๋‹ค์ค‘ ๋ถ„๋ฅ˜ ( Multi classification ) : [A, B, C, D], [๊ฐœ, ๊ณ ์–‘์ด, ์‚ฌ์Šด, ๊ณฐ] ... ์ง€๋„ ํ•™์Šต ์ค‘ ๊ฐ€์žฅ ๋Œ€ํ‘œ๊ฒฉ์ธ ์„ ํ˜• ํšŒ๊ท€์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ X = [1, 2, 3, 4] ์ถœ๋ ฅ Y = [3, 5, 7, 9] ์ด๋ผ๋ฉด ๊ณผ์—ฐ X=5์ผ ๋•Œ, Y์˜ ๊ฐ’์€? ์‚ฌ๋žŒ์€ ์‰ฝ๊ฒŒ Y์˜ ๊ฐ’์ด 11์ž„์„ ๊ธˆ๋ฐฉ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค..
[ํŒŒ์ด์ฌ] ์ž๋ฃŒ๊ตฌ์กฐ : python(List) ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ํŒŒํ—ค์น˜๊ธฐ
ยท
๐Ÿ Python/Basic
python List ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด ์•Œ์•„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. list_a = [1,2,3,4] list_b = list_a print("list_a :", list_a) print("list_b :", list_b) print("list_a ๋ฉ”๋ชจ๋ฆฌ :", id(list_a)) print("list_b ๋ฉ”๋ชจ๋ฆฌ :", id(list_b)) """ ๊ฒฐ๊ณผ list_a : [1, 2, 3, 4] list_b : [1, 2, 3, 4] list_a ๋ฉ”๋ชจ๋ฆฌ : 1305532916296 list_b ๋ฉ”๋ชจ๋ฆฌ : 1305532916296 """ list_a์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ list_b์— ๋Œ€์ž…์—ฐ์‚ฐ์ž( = )๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด, list_b์— ๊ฐ’์ด ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, list_a์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ฒŒ ๋˜์–ด list_a์™€ list_b..
[ํŒŒ์ด์ฌ ์‹ค์Šต] Python threading VS PyQt5 QThread
ยท
๐Ÿ Python/Application
์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ Python์— ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” threading๊ณผ PyQt5dml QThread์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. threading ์“ฐ๋ ˆ๋“œ ์—ญํ• ์„ํ•˜๊ณ , QThread๋„ ์“ฐ๋ ˆ๋“œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ถ„๋ช…ํžˆ ๋‘˜์˜ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„ , ์“ฐ๋ ˆ๋“œ์— ๋Œ€ํ•ด ์• ๋งคํ•˜์‹œ๋‹ค๋ฉด ์•„๋ž˜ ๊ธ€์„ ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. https://coding-yoon.tistory.com/45 [ํŒŒ์ด์ฌ ์‹ค์Šต] PyQt5 : QThread๋ฅผ ์‚ฌ์šฉํ•ด ์‘๋‹ต ์—†์Œ ๋ฐฉ์ง€ & ์—ฌ๋Ÿฌ ๋™์ž‘ํ•˜๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š”. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ๋™์ž‘์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์“ฐ๋ ˆ๋“œ๋ž€ ๊ฐœ๋…์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„ , ์ž‘์—…๊ด€๋ฆฌ์ž๋ฅผ ํ•œ ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. CPU๋Š” ํ•œ ๋ฒˆ์— ํ•œ ๊ฐ€์ง€์˜ ๋™์ž‘๋ฐ–์— ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ G(10์˜ 9์ œ๊ณฑ)๋‹จ.. coding-yoon.tistory.c..
[ํŒŒ์ด์ฌ ์‹ค์Šต] PyQt5 : QThread๋ฅผ ์‚ฌ์šฉํ•ด ์‘๋‹ต ์—†์Œ ๋ฐฉ์ง€ & ์—ฌ๋Ÿฌ ๋™์ž‘ํ•˜๊ธฐ
ยท
๐Ÿ Python/Application
์•ˆ๋…•ํ•˜์„ธ์š”. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ๋™์ž‘์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์“ฐ๋ ˆ๋“œ๋ž€ ๊ฐœ๋…์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„ , ์ž‘์—…๊ด€๋ฆฌ์ž๋ฅผ ํ•œ ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. CPU๋Š” ํ•œ ๋ฒˆ์— ํ•œ ๊ฐ€์ง€์˜ ๋™์ž‘๋ฐ–์— ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ G(10์˜ 9์ œ๊ณฑ)๋‹จ์œ„๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—…๊ด€๋ฆฌ์ž๋ฅผ ํ™•์ธํ•˜๋ฉด CPU๋Š” ํ•˜๋‚˜์ธ ๋ฐ˜๋ฉด, ํ”„๋กœ์„ธ์Šค๋Š” 184๊ฐœ๊ฐ€ 1958๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ํ†ตํ•ด ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CPU๋Š” ์‹œ๊ฐ„, ์šฐ์„ ์ˆœ์œ„ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๋Ÿฐ์‹์œผ๋กœ ์“ฐ๋ ˆ๋“œ 1๋ฒˆ ์ˆ˜ํ–‰, 2๋ฒˆ ์ˆ˜ํ–‰, ๋‹ค์Œ 3๋ฒˆ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ์†๋„๊ฐ€ ๊ต‰์žฅํžˆ ๋นจ๋ผ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์•Œ์•„์ฐจ๋ฆฌ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. #์“ฐ๋ ˆ๋“œ๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์€ ์˜ˆ์ œ from PyQt5.QtWidgets import * from PyQt5.QtCore import * i..
[ํŒŒ์ด์ฌ] ์ž๋ฃŒ๊ตฌ์กฐ : ์žฌ๊ท€ํ•จ์ˆ˜ & ์Šคํƒ๊ตฌ์กฐ & LIFO๊ตฌ์กฐ
ยท
๐Ÿ Python/Basic
์žฌ๊ท€ํ•จ์ˆ˜(Recursive function) : ์ž๊ธฐ ์ž์‹ ์„ ๋ถ€๋ฅด๋Š” ํ•จ์ˆ˜ ๋ฆฌ์ŠคํŠธ(List) : ๋™์ ์ธ ๋ฐฐ์—ด (ํŠœํ”Œ(tuple) : ์ •์ ์ธ ๋ฐฐ์—ด) LIFO : Last in Fisrt out ์Šคํƒ(stack) : ์ผ์ข…์˜ ๋ฐ”๋‹ฅ์ด ๋ง‰ํžŒ ์ƒ์ž ํ˜น์€ ๋”๋ฏธ, ๋‚˜์ค‘์— ๋„ฃ์€ ๋ฌผ๊ฑด์€ ๋‚˜์ค‘์— ๊บผ๋‚ผ ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๊ตฌ์กฐ, LIFO(Last In First Out) ๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์ด ์Šคํƒ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (Push๋Š” ์ž๋ฃŒ๋ฅผ ์ž…๋ ฅ, Pop์€ ์ž๋ฃŒ๋ฅผ ์ถœ๋ ฅ) #์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์Šคํƒ๊ตฌ์กฐ def stack(start , end): if start
[ํŒŒ์ด์ฌ] ์ž๋ฃŒ๊ตฌ์กฐ : ๋ฒ„๋ธ” ์ •๋ ฌ
ยท
๐Ÿ Python/Basic
๋ฒ„๋ธ” ์ •๋ ฌ(Bubble Sort) : ์„œ๋กœ ์ธ์ ‘ํ•œ ๋‘ ์›์†Œ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ : 9~0๊นŒ์ง€ ๋ฐฐ์—ด ์„ ๋ฒ„๋ธ” ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ผ! num = [9,8,7,6,5,4,3,2,1,0] for i in range(0, len(num)-1): if i != len(num)-1: for j in range(i+1, len(num)): if num[i] > num[j]: temp = num[i] num[i] = num[j] num[j] = temp print(num) #๊ฒฐ๊ณผ [0, 9, 8, 7, 6, 5, 4, 3, 2, 1] [0, 1, 9, 8, 7, 6, 5, 4, 3, 2] [0, 1, 2, 9, 8, 7, 6, 5, 4, 3] [0, 1, 2, 3, 9, 8, 7, 6, 5..
[python] List, Dict ๋ฅผ ํ™œ์šฉํ•œ ๋ฉด์ ‘ ๋ฌธ์ œ ์—ฐ์Šตํ•˜๊ธฐ
ยท
๐Ÿ Python/Basic
์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์ธ List์™€ Dict์„ ํ™œ์šฉํ•œ ๋ฉด์ ‘ ๋ฌธ์ œ ์ฝ”๋”ฉ์„ ํ•˜๋‚˜ ์ž‘์„ฑํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. tuple( ( ) ์‚ฌ์šฉ) : ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐ์—ด(์ •์ ํ• ๋‹น)์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ถˆ๊ฐ€๋ณ€์ ์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์—†๋‹ค. List( [ ] ์‚ฌ์šฉ ) : ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐ์—ด(๋™์ ํ• ๋‹น)์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฐ€๋ณ€์ ์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์ง‘์–ด ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. Dict( { } ์‚ฌ์šฉ) : List์™€ ๋‹ฌ๋ฆฌ Index๋„ ์ž…๋ ฅํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Dictionary์€ ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€? ๊ทธ ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์žˆ์–ด Dict์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ด๋ฏธ Index๋ฅผ ์•Œ๊ณ  ์žˆ์–ด, ๋ฐ”๋กœ ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. List๋Š” ๋ฐฐ์—ด ๊ตฌ์กฐ๋กœ์„œ ํฌ๊ธฐ๊ฐ€ 10(0~9)์ธ List๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒŒ ๋˜๋ฉด, 9๋ฒˆ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์ˆœ์ฐจ์ ์œผ๋กœ..
[ํŒŒ์ด์ฌ ์‘์šฉ] 10ํƒ„ : ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ Numpy
ยท
๐Ÿ Python/Application
์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ํŒŒ์ด์ฌ Numpy๋ฅผ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Numpy ์ค‘์—์„œ๋„ ์ œ๊ฐ€ ์ž์ฃผ ์“ฐ๋Š” ๋‚ด์šฉ ์œ„์ฃผ๋กœ ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. 1. import import numpy as np 2. ๋‚ด์šฉ ์‚ฝ์ž… list_test = [] for i in range(5000*700): list_test = np.append(list_test, i) list_test๋ผ๋Š” ๋นˆ list๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. for๋ฌธ์„ ํƒ€๊ณ  list_test์— ์ฐจ๋ก€๋Œ€๋กœ 0๋ถ€ํ„ฐ 5000*700-1๊นŒ์ง€ ๊ฐ’์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. appendํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด list_test๋Š” 1์ฐจ ๋ฐฐ์—ด๋กœ์„œ ๊ธฐ๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฐ์ดํ„ฐ์…‹์ด 5000๊ฐœ๊ฐ€ ์กด์žฌํ•˜๊ณ  ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ์…‹์•ˆ์— 700๊ฐœ๊ฐ€ ๋“ค์–ด์žˆ๋‹ค๋ฉด, appendํ•จ์ˆ˜๋Š” ๊ธธ์ด๊ฐ€ 5000 * 700๊ฐœ์ธ 1์ฐจ numpy๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋‹ค์‹œ l..
[ํŒŒ์ด์ฌ ์‘์šฉ] 9ํƒ„ Selenium & Beautifulsoup ์—…๋ฌด ์ž๋™ํ™”(๋งคํฌ๋กœ) : select ๋‹ค๋ฃจ๊ธฐ & ComboBox๋‹ค๋ฃจ๊ธฐ
ยท
๐Ÿ Python/Application
์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ComboBox์™€ select์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์›น ํฌ๋กค๋ง์„ ํ•˜๋‹ค ๋ณด๋ฉด ์œ„์™€ ๊ฐ™์€ ์ฝค๋ณด๋ฐ•์Šค๋ฅผ ๋งˆ์ฃผ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. from selenium.webdriver.support.ui import Select select = Select(driver.find_element_by_id('locale_switch')) select.select_by_index(0) select.select_by_index(1) select.select_by_index(2)
[ํŒŒ์ด์ฌ ์‘์šฉ] 8ํƒ„ Selenium & Beautifulsoup ์—…๋ฌด ์ž๋™ํ™”(๋งคํฌ๋กœ) : iframe ์‚ฌ์šฉํ•˜๊ธฐ & HTML ์•ˆ์˜ ๋‹ค๋ฅธ HTML๋‹ค๋ฃจ๊ธฐ
ยท
๐Ÿ Python/Application
์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ ์›นํฌ๋กค๋ง์— ๋Œ€ํ•ด ๊ธ€์„ ์“ฐ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์›นํฌ๋กค๋ง์„ ๊ณต๋ถ€ํ•ด์•ผ์ง€! ํ•ด์„œ ๊ณต๋ถ€ํ•œ๊ฒŒ ์•„๋‹ˆ๋ผ ์ผ์„ ๋•๊ณ ์ž ์ž๋™ํ™”๋ฅผ ์ฐพ์•„๋ณด๋‹ค Beautifulsoup๊ณผ Selenium์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ผ์„ ๋•๊ธฐ ์œ„ํ•ด ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ž๋™์ ์œผ๋กœ ๋”ฐ์˜ค๋Š” ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ๊ตณ์ด ์›นํฌ๋กค๋ง์„ ๊ณต๋ถ€ํ•  ๋•Œ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ๊ฐ™์€ ์–ธ์–ด๋Š” ๋ชฐ๋ผ๋„ ๋ฉ๋‹ˆ๋‹ค. Beautifulsoup๋Š” ํ™ˆํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ณ , Selenium์€ ์ž๋™ํ™”๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด ๋‘ ๊ฐ€์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ์•ˆ๋‹ค๋ฉด ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์›ฌ๋งŒํ•œ ์ž๋™ํ™”ํ”„๋กœ๊ทธ๋žจ์€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋งŒ๋“  ๋งคํฌ๋กœ ํ”„๋กœ๊ทธ๋žจ๋„ ์›น๊ธฐ๋ฐ˜ ์ง€์‹์„ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ 3์ผ์„ ๊ฑฐ์ณ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋™์˜์ƒ์œผ๋กœ ๋ณด์—ฌ๋“œ๋ฆฌ๊ณ  ์‹ถ์ง€๋งŒ, ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด์—..
18์ง„์ˆ˜
'๐Ÿ Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (5 Page)