๐Ÿฐ Woori FISA/ํ›„๊ธฐ

์šฐ๋ฆฌ FISA AI์—”์ง€๋‹ˆ์–ด๋ง 2์ฃผ์ฐจ ๊ณผ์ •

๊ณ„๋ž€์†Œ๋…„ 2025. 1. 6. 16:49

Monday (01.06)

๋”๋ณด๊ธฐ

์˜ค๋Š˜์˜ ์ ์‹ฌ


๋ณ„์  โญ๏ธโญ๏ธโญ๏ธ

ํ‰๋ฒ”ํ•œ ์†ฅ๋ฐฅ๋ง›, ์ œ์œก์€ ๋‹ฌ๋‹ค ..


https://naver.me/FbzLw7AF

 

๋„ค์ด๋ฒ„ ์ง€๋„

์ฐธ์†ฅ ์ƒ์•”์ 

map.naver.com

 

 

 

ํƒ€์ž… ํžŒํŠธ

 

ํƒ€์ž… ํžŒํŠธ:  ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด์ฃผ๋Š” ์ฃผ์„๊ณผ ๋น„์Šทํ•œ ๊ฐœ๋…

def add(a: int, b: int) -> int:
    return a + b
add('5', 3)  # ํƒ€์ž… ํžŒํŠธ์™€ ๋‹ค๋ฅด์ง€๋งŒ ์‹คํ–‰์€ ๋จ

์ด๋•Œ, ์ž๋ฃŒํ˜• ๊ฐ•์ œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•จ. ํŒŒ์ด์ฌ์€ ๋™์  ํƒ€์ดํ•‘ ์–ธ์–ด์ด๊ธฐ์— ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์‹คํ–‰ ์ค‘์— ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค.

ํƒ€์ž… ํžŒํŠธ๋Š” ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋ฉฐ, ์ž๋ฃŒํ˜• ๊ฐ•์ œ๋ฅผ ์œ„ํ•œ๋‹ค๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

์ „์—ญ๋ณ€์ˆ˜, ์ง€์—ญ๋ณ€์ˆ˜

 

์ „์—ญ๋ณ€์ˆ˜์™€ ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ๋‚˜๋ˆ ์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  → ์ „์—ญ๋ณ€์ˆ˜๋Š” ์œ„ํ—˜ํ•˜๊ธฐ ๋•Œ๋ฌธ

์ง€์—ญ๋ณ€์ˆ˜ ์‚ฌ์šฉ์„ ์ง€ํ–ฅํ•˜๋ฉฐ, ์ถ”๊ฐ€์ ์œผ๋กœ ํ•ด๋‹น ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ์ „์—ญ๋ณ€์ˆ˜ํ™” ์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด, global ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ž

 

์žฌ๊ท€ํ•จ์ˆ˜

 

์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ๊ธฐํ”ผํ•˜๋˜ ๊ณผ๊ฑฐ์™€ ๋‹ฌ๋ฆฌ, ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚จ์— ๋”ฐ๋ผ  ํ˜„์žฌ๋Š” ์žฌ๊ท€ํ•จ์ˆ˜๋˜ํ•œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ถ”์„ธ์ด๋‹ค.

ํ•จ์ˆ˜๋Š” ์Šคํƒ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‹คํ–‰์ด ๋˜๋ฏ€๋กœ LIFO๊ตฌ์กฐ์— ๋”ฐ๋ผ ๋™์ž‘ํ•˜์—ฌ ๋งˆ์ง€๋ง‰์— ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๊ฐ€ ๋จผ์ € ์‹คํ–‰๋œ๋‹ค.

example = [[1,2,3], [4,[5,6]],7,[8,[9]]]
# output = [1,2,3,4,5,6,7,8,9]


def recur(example):
    arr=[]
    for item in example:
        if isinstance(item,list):
            arr.extend(recur(item))
        else:
            arr.append(item)
    return arr

print(recur(example))

 

์ด๋•Œ, arr.extend(recur(item))๋ฅผ ์จ์•ผํ•œ๋‹ค. ์ฒ˜์Œ์— arr.append(recur(item)) ์“ฐ๋‹ˆ๊นŒ ์•ˆ๋˜๋Š”๋ฐ

์ฐจ์›์ด ๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ๋ฅผ ํ‰ํƒ„ํ™” ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ์—, ๊ฐ ๋ฆฌ์ŠคํŠธ์˜ ํ•ญ๋ชฉ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ํ’€์–ด์„œ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค.

extend()๋Š” ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ˜๋ฉด, append()๋Š” ์ค‘์ฒฉ๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ทธ๋Œ€๋กœ ๋„ฃ๊ธฐ๋•Œ๋ฌธ์— ๋ฆฌ์ŠคํŠธ๊ฐ€ ํ‰ํƒ„ํ™” ์ ์šฉ์ด ์•ˆ๋œ๋‹ค.

์ถ”๊ฐ€๋กœ arr.extend(item)์€ ์•ˆ๋œ๋‹ค.

 

  • append, extend ๋ชจ๋‘ ์‚ฝ์ž…ํ•˜๋Š” ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•˜์ง€๋งŒ ์ฐจ์ด์ ์ด ์กด์žฌ
  • append๋Š” ๋ฆฌ์ŠคํŠธ์— ๋‹จ์ผ ํ•ญ๋ชฉ ์ถ”๊ฐ€์— ์ ์šฉํ•˜๋Š” ๋ฐ˜๋ฉด extend๋Š” iterable ๊ฐ์ฒด์—๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ณ ,  
  • append๋Š” ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ๋„ฃ๋Š” ๋ฐ˜๋ฉด extend๋Š” iterable ๊ฐ์ฒด๋ฅผ ํ’€์–ด์„œ ๋„ฃ๋Š”๋‹ค.

 

ํ•จ์ˆ˜ํ˜• ๋ฌธ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

 

  • ๊ณ ์ฐจ ํ•จ์ˆ˜(ํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ๋ฐ›๊ฑฐ๋‚˜ ๋ฐ˜ํ™˜)
  • map(), filter(), reduce()
  • lambda ํ•จ์ˆ˜
  • ๋ฆฌ์ŠคํŠธ/์…‹/์ œ๋„ˆ๋ ˆ์ดํ„ฐ ์ปดํ”„๋ฆฌํ—จ์…˜
  • any(), all(), sorted()

์ด ์ค‘ ๋ช‡๊ฐ€์ง€๋ฅผ ์ •๋ฆฌํ•ด๋ณด์ž



์ต๋ช…ํ•จ์ˆ˜

 

Lambda, ์“ฐ๊ณ  ๋ฒ„๋ฆฌ๋Š” ํ•จ์ˆ˜๋กœ, ํ•จ์ˆ˜๋ช…์„ ๊ฐ€์ง„ ํ•จ์ˆ˜ ๋˜ํ•œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์šฉ๋ฒ•: lambda ํŒŒ๋ผ๋ฏธํ„ฐ:๋ช…๋ น์–ด

minus = lambda a,b:a-b
print(minus(4,3))

divide = lambda a,b:a//b
print(divide(12,3))

points = [(3,2),(1,0),(1,1),(3,2)]
#y์ขŒํ‘œ ์ˆœ์œผ๋กœ ์ •๋ ฌ -> lambda ์‚ฌ์šฉ
sorted(points, key = lambda points:points[1])

 

 

List Comprehension

๊ธฐ์กด ๋ฆฌ์ŠคํŠธ๋กœ ๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• → ๋ถˆํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์•ˆํ•จ

for + append ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋ณด๋‹ค ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

์‚ฌ์šฉ๋ฒ•: [(๋ณ€์ˆ˜์— ์ ์šฉํ•  ์ˆ˜์‹) for (๋ณ€์ˆ˜) in (for๋ฌธ์ด ๋Œ์•„๊ฐ€๋Š” ๋ฒ”์œ„) (์กฐ๊ฑด๋ฌธ)]

#for ๋ฌธ์„ ํ™œ์šฉํ•ด์„œ 1~6 ๋‹ด๊ธด ๋ฆฌ์ŠคํŠธ
list1=[]
for i in range(1,7):
    list1.append(i)
print(list1)

#list comprehension ํ™œ์šฉ
list2 = [x for x in range(1,7)]
print(list2)

# 2์˜ ๋ฐฐ์ˆ˜
result =[ x for x in range(1,12) if x%2==0]
print(result)

num = '12345' # ์™ธ๋ถ€๋ฐ˜๋ณต๋ฌธ
word = 'ABCDE' # ๋‚ด๋ถ€๋ฐ˜๋ณต๋ฌธ

arr=[]

# for๋ฌธ
for i in range(len(num)):
    for j in range(len(word)):
        if str(num[i])  != word[j]:
            arr.append(str(num[i]) + word[j])

#list comprehension
arr=[str(num[i]) + word[j] for i in range(len(num))  for j in range(len(word)) if str(num[i])  != word[j]]
print(arr)

 

 

map

 

  • iterable๊ฐ์ฒด์˜ ๊ฐ ์š”์†Œ์— ๋™์ผํ•œ ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•  ๋•Œ ์‚ฌ์šฉ, ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ 
  • ๋žŒ๋‹ค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•˜๋‹ค.
words = ['apple', 'banana', 'cherry']
list(map(str.upper,words)) #์ถœ๋ ฅ: ['APPLE', 'BANANA', 'CHERRY']

string_floats = ['1.1', '2.2', '3.3', '4.4', '5.5']
list(map(float,string_floats)) #์ถœ๋ ฅ: [1.1, 2.2, 3.3, 4.4, 5.5]

li = [1, 2, 3, 4, 5]
tuple(map(lambda x: x+1,li)) #์ถœ๋ ฅ: (2, 3, 4, 5, 6)

 

 

filter

  • iterable๊ฐ์ฒด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด function์ด ์ฐธ์ธ ๊ฒƒ๋งŒ ๋ฐ˜ํ™˜
def even(x):
    if x%2 ==0:
        return x
list(map(even,li)) #์กฐ๊ฑด ๋งŒ์กฑ ์•ˆํ•˜๋Š” ๋ฐฉ์—๋Š” None์„ ์ฑ„์›Œ๋„ฃ์Œ ์ถœ๋ ฅ: [None, 2, None, 4, None]
list(filter(even,li)) #์กฐ๊ฑด ๋งŒ์กฑ ํ•˜๋Š” ๊ฒƒ๋งŒ ์ถœ๋ ฅ: [2, 4]

 

enumerate

  • ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ์ถ”์ถœํ•  ๋•Œ ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์—ฌ์„œ ์ถ”์ถœ 
list1 = ['์‚ฌ๊ณผ', '๋ฐ”๋‚˜๋‚˜', '๋”ธ๊ธฐ', 'ํฌ๋„', 'ํ‚ค์œ„']

for a,b in enumerate(list1):
    print(a+1,": ",b)
    
#์ถœ๋ ฅ
'''
1 :  ์‚ฌ๊ณผ
2 :  ๋ฐ”๋‚˜๋‚˜
3 :  ๋”ธ๊ธฐ
4 :  ํฌ๋„
5 :  ํ‚ค์œ„
'''

 

zip

  • zip(list,list):  2๊ฐœ ์ด์ƒ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•ฉ์น˜๋ฉฐ, ๊ธธ์ด๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์œผ๋ฉด ๋ˆ„๋ฝ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ฃผ์˜์ 
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

result = zip(list1, list2)
print(list(result))
# ์ถœ๋ ฅ: [(1, 'a'), (2, 'b'), (3, 'c')]
pairs = [(1, 'a'), (2, 'b'), (3, 'c')]

list1, list2 = zip(*pairs)
print(list1)
print(list2)

# ์ถœ๋ ฅ
# (1, 2, 3)
# ('a', 'b', 'c')

 

reduce

  • ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ๋“ค์„ ๋ˆ„์ ํ•˜์—ฌ ๋”ํ•จ
  • ๋ˆ„์ ํ•ฉ ์‚ฌ์šฉ์‹œ ์ข‹๋‹ค. sum ์ด ์žˆ์ง€๋งŒ, ๋‹ค๋ฅธ ์ฐจ์›์˜ ๊ณ„์‚ฐ๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์œ ์šฉํ•˜๋‹ค.
from functools import reduce

nums = [1, 2, 3, 4]
result = reduce(lambda x, y: x + y, nums)  # 1+2 -> 3, 3+3 -> 6, 6+4 -> 10
print(result)  # ์ถœ๋ ฅ: 10
test = [{'name' : 'a', 'age' : 1}, {'name' : 'b', 'age' : 2}, {'name' : 'c', 'age' : 3}]

reduce(lambda x,y:x['age']+y['age'], test,0) #์‹คํŒจ
reduce(lambda x,y:x+y['age'], test,0) #์„ฑ๊ณต

 

์‹คํŒจ์ฝ”๋“œ

x['age'] + y['age'] ๋ถ€๋ถ„์—์„œ x์™€ y๊ฐ€ ๋”•์…”๋„ˆ๋ฆฌ์ผ ๋•Œ, x['age']์™€ y['age']๋ฅผ ๋”ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ

์ฒซ ๋ฒˆ์งธ ์ฝ”๋“œ์—์„œ x['age']๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด x๊ฐ€ ๋”•์…”๋„ˆ๋ฆฌ์—ฌ์•ผ ํ•˜์ง€๋งŒ, ์ฒซ ๋ฒˆ์งธ ๋ฐ˜๋ณต์—์„œ x๊ฐ€ 0์ด๊ธฐ ๋•Œ๋ฌธ์— ๋”•์…”๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹˜ ->  x['age']์—์„œ ์˜ค๋ฅ˜ 

 

์„ฑ๊ณต์ฝ”๋“œ

  • ์ฒซ ๋ฒˆ์งธ ํ˜ธ์ถœ: x = 0, y = {'name': 'a', 'age': 1}
    x + y['age'] = 0 + 1 = 1
  • ๋‘ ๋ฒˆ์งธ ํ˜ธ์ถœ: x = 1, y = {'name': 'b', 'age': 2}
    x + y['age'] = 1 + 2 = 3
  • ์„ธ ๋ฒˆ์งธ ํ˜ธ์ถœ: x = 3, y = {'name': 'c', 'age': 3}
    x + y['age'] = 3 + 3 = 6


 

ํŒŒ์ด์ฌ ํŒŒ์ผ

 

ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์กด์žฌ

  • 1: ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•˜๊ณ , ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ํŒŒ์ผ ๋‹ซ๊ธฐ๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋” ์•ˆ์ „ 
with open('ํŒŒ์ผ๋ช…', '๋ชจ๋“œ') as file:
    print('๋‚ด์šฉ', file=file)
  • 2: ํŒŒ์ผ์„ ๋ช…์‹œ์ ์œผ๋กœ ์—ด๊ณ  ๋‹ซ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ํŒŒ์ผ์„ ๋‹ซ์ง€ ์•Š๋Š” ์‹ค์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด ์กฐ์‹ฌํ•ด์•ผ ํ•œ๋‹ค.
# 1. ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ์—ด๊ธฐ
file = open('ํŒŒ์ผ๋ช…', '๋ชจ๋“œ') 

# 2. ์‚ฌ์šฉํ•  ๋ชจ๋“œ ์ง€์ • (r, w, a)
file.write("๋‚ด์šฉ") 

# 3. ํŒŒ์ผ๋‹ซ๊ธฐ
file.close()
f2 = open('test2.txt','w')
print("์ƒˆ๋กœ์šด ํŒŒ์ผ์ž…๋‹ˆ๋‹ค",file=f2)
#๋‹ซ๊ธฐ ์ „๊นŒ์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ์—๋งŒ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๋‹ค๊ฐ€, ํŒŒ์ผ ๋‹ซ์œผ๋ฉด ๊ทธ๋•Œ ๋ฐ์ดํ„ฐ ์ €์žฅ
f2.close()

#์ˆ˜์ •์ด ๋นˆ๋ฒˆํ•˜๋ฉด ํŒŒ์ผ์„ ๊ณ„์† ์—ด์–ด๋†“๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ”๋กœ ๋ฐ˜์˜ -> ๋ฉ”๋ชจ๋ฆฌ ์ธก๋ฉด์—์„œ ๋น„ํšจ์œจ์ 

f2 = open('test2.txt','w')
print("์ƒˆ๋กœ์šด ํŒŒ์ผ์ž…๋‹ˆ๋‹ค",file=f2, flush=True)
with open('test3.txt', 'r') as r_test:
    # read()
    content = r_test.read()
    print('read():', content)
    
    # readable() 
    print('readable():', r_test.readable())
    
    # readline()
    r_test.seek(0)  # ํŒŒ์ผ์˜ ์ฒ˜์Œ์œผ๋กœ ์ด๋™ (readline์€ ํ•œ ๋ฒˆ๋งŒ ์ฝ์œผ๋ฏ€๋กœ)
    while True:
        line = r_test.readline()
        if line =='':
            break
        print('readline(): ',line, end='')

    
    # readlines()
    r_test.seek(0)  # ํŒŒ์ผ์˜ ์ฒ˜์Œ์œผ๋กœ ์ด๋™
    lines = r_test.readlines()
    print('readlines():', lines)
# test3.txt ์˜ˆ์‹œ
Hello, this is the first line.
This is the second line.
And here is the third line.
Finally, the fourth line.


# read()
read(): Hello, this is the first line.
This is the second line.
And here is the third line.
Finally, the fourth line.

# readable()
readable(): True

# readline()
readline():  Hello, this is the first line.
readline():  This is the second line.
readline():  And here is the third line.
readline():  Finally, the fourth line.

# readlines()
readlines(): ['Hello, this is the first line.\n', 'This is the second line.\n', "And here is the third line.\n", 'Finally, the fourth line.\n']

 

 

์ถ”๊ฐ€: print()์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ end, sep ๋น„๊ต

 

end: ์ถœ๋ ฅ ๋’ค์— ๋ง๋ถ™์ผ ๋ฌธ์ž์—ด์„ ์„ค์ •, ๊ธฐ๋ณธ๊ฐ’์€ ์ค„๋ฐ”๊ฟˆ(\n) 

print("Hello", end=" ") → "Hello " ๋’ค์— ๊ณต๋ฐฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ค„๋ฐ”๊ฟˆํ•˜์ง€ ์•Š์Œ.


sep: ์—ฌ๋Ÿฌ ๊ฐ’์„ ์ถœ๋ ฅํ•  ๋•Œ ๊ฐ ๊ฐ’ ์‚ฌ์ด์— ๋“ค์–ด๊ฐˆ ๊ตฌ๋ถ„์ž๋ฅผ ์„ค์ •, ๊ธฐ๋ณธ๊ฐ’์€ ๊ณต๋ฐฑ(' ') 

print("Hello", "world", sep="-") → "Hello-world"๋กœ ๊ตฌ๋ถ„์ž๋ฅผ -๋กœ ์„ค์ •.



 

 


 

Tuesday (01.07)

 

์›ฐ์ปด ํ‚คํŠธ๋ฅผ ์ฃผ์…จ๋‹ค.(์น˜์•ฝ, ํ‚ค๋ง, ๋ณด์กฐ๋ฐฐํ„ฐ๋ฆฌ, ๊ฑฐ์น˜๋Œ€, ํ…€๋ธ”๋Ÿฌ, ๋‹ค์ด์–ด๋ฆฌ, ๋ฉ€ํ‹ฐํฌํŠธ) ์•ผ๋ฏธ

 

๋”๋ณด๊ธฐ

์˜ค๋Š˜์˜ ์ ์‹ฌ


๋ณ„์  โญ๏ธโญ๏ธโญ๏ธ

๋ˆ๊นŒ์“ฐ๋Š” ๋œจ๊ฒ๊ณ  ๋ง›์žˆ์—ˆ๋‹ค. ๋ฐฅ์ด ๋ฐ”๋‹ฅ์— ๋ˆŒ๋Ÿฌ๋ถ™์€๊ฒŒ ์•„์‰ฌ์› ๋‹ค.

 

https://naver.me/FQVUuFjc

 

๋„ค์ด๋ฒ„ ์ง€๋„

๋ˆ์นด์ถ˜ ์ƒ์•”DMC์ 

map.naver.com

 

 

๋ชจ๋“ˆ

 '.py' ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ Python ํŒŒ์ผ๋กœ, ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜์—ฌ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋กœ ๋งŒ๋“ฆ

  • ์ „์ฒด ๋ชจ๋“ˆ์„ import
import math1   
print(math1.plus(3, 4))

 

  • ํŠน์ • ํ•จ์ˆ˜๋งŒ import
from math1 import plus  
print(plus(3, 4))  # ๋ง์…ˆ ํ•จ์ˆ˜ ์ง์ ‘ ์‚ฌ์šฉ

 

  • ๋ชจ๋“ˆ importํ•˜๊ณ  ๋‹ค์‹œ importํ•ด๋„ ๋ถˆ๋Ÿฌ์˜จ ๋ชจ๋“ˆ ์žฌ์‚ฌ์šฉ -> ๋ถˆํ•„์š”ํ•œ ๋ชจ๋“ˆ ๋กœ๋”ฉ์„ ๋ฐฉ์ง€ 

 

ํŒŒ์ผ๋ช…์€ ๋ชจ๋“ˆ๋ช…์œผ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— '๋ชจ๋“ˆ ์ด๋ฆ„'๊ณผ 'ํŒŒ์ผ ์ด๋ฆ„'์ด ๊ฒน์น˜์ง€ ์•Š๋„๋ก ์ฃผ์˜

๊ฒฝ๋กœ๋ฅผ '.' '/' ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ์‹์— ์ฃผ์˜

  • ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ '/'๋ฅผ ์‚ฌ์šฉํ•ด ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ ํŒŒ์ผ์„ ๊ตฌ๋ถ„ 
    • %%writefile /content/drive/MyDrive/package/math1.py
  • Python ์—์„œ  '.'์„ ์‚ฌ์šฉํ•ด ๊ฒฝ๋กœ ์ง€์ • 
    • from drive.MyDrive.package import math1
  • ๋ณ„์นญ(alias) ์‚ฌ์šฉ
import math1 as m   
print(m.๋ง์…ˆ(3, 4))

 

ํŒจํ‚ค์ง€



์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์„ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ

 

Pytho 3.x ์ด์ „๊นŒ์ง€๋Š” __init__ ํŒŒ์ผ์ด ์žˆ์–ด์•ผ ํŒจํ‚ค์ง€๋กœ ์ธ์‹

-> ์ดํ›„๋ถ€ํ„ฐ  __init__ ํŒŒ์ผ์ด ์—†์–ด๋„ ํŒจํ‚ค์ง€๋กœ ์ธ์‹ํ•˜์ง€๋งŒ, ์žฅ๊ณ ๊ฐ™์€ ์ „ํ†ต์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” __init__.py๋ฅผ ์š”๊ตฌํ•œ๋‹ค.

 

์˜ˆ์™ธ์ฒ˜๋ฆฌ

 

์ฝ”๋“œ ์‹คํ–‰ ์ค‘์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ๋ฏธ๋ฆฌ ์˜ˆ์ธกํ•˜๊ฑฐ๋‚˜, ๋ฐœ์ƒํ•œ ํ›„ ์ด๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌ 

  1. ์ปดํŒŒ์ผ ์—๋Ÿฌ
    • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ ์‹คํ–‰ ์ „์— ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜์ • ๊ฐ€๋Šฅ
    • ex) ๋ฌธ๋ฒ• ์˜ค๋ฅ˜
  2. ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ
    • ์ฝ”๋“œ ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹คํ–‰ ์ „์— ํ•ด๊ฒฐ ๋ถˆ๊ฐ€
    • 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ, ํŒŒ์ผ ์—ด ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ

 

์˜ˆ์™ธ์ฒ˜๋ฆฌ

๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ ํ›„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

try: ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ์‹œํ•˜๋Š” ๋ธ”๋ก
except: ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ฒ˜๋ฆฌํ•˜๋Š” ๋ธ”๋ก
else: ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด ์‹คํ–‰๋˜๋Š” ๋ธ”๋ก (์„ ํƒ์ )
finally: ์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋˜๋Š” ๋ธ”๋ก (์„ ํƒ์ )

 

try:
    a = input('์ •์ˆ˜ ์ž…๋ ฅ: ')
    # ValueError: invalid literal for int() with base 10: '์‹ญ์ผ'
    if int(a) > 0:
        print('True')
    else:
        print('์ž˜๋ชป ์ž…๋ ฅํ•˜์…จ์Šต๋‹ˆ๋‹ค')
    # ValueError: invalid literal for int() with base 10: '๋ฐฑ์ด์‹ญ์‚ผ'
except ValueError as e:  # ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’์„ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ
    print("์ •์ˆ˜๋กœ ์ž…๋ ฅ")
    print(e)  # ๋ฐœ์ƒํ•œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ
except EOFError as e:  # ์ž…๋ ฅ์ด ์ข…๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์ฒ˜๋ฆฌ
    print("๊ฐ•์ œ์ข…๋ฃŒํ–ˆ๋„ค์š”")
    print(e)
except Exception as e:  # ์œ„์˜ ๋‘ ์˜ˆ์™ธ ์™ธ์— ๋‹ค๋ฅธ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌ
    print("๋ญ”์ง€ ๋ชจ๋ฅผ ์—๋Ÿฌ ๋ฐœ์ƒ")
    print(e)
  • try ๋ธ”๋ก
    • ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์„ int๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ  ์‹œ๋„
    • ๋งŒ์•ฝ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ValueError๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์ด ์˜ˆ์™ธ๋Š” except ValueError ๋ธ”๋ก์—์„œ ์ฒ˜๋ฆฌ ๋จ
    • int(a)๊ฐ€ 0 ์ดํ•˜์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด, "์ž˜๋ชป ์ž…๋ ฅํ•˜์…จ์Šต๋‹ˆ๋‹ค"๋ฅผ ์ถœ๋ ฅ
  • except ๋ธ”๋ก
    •  except ValueError: ์ˆซ์ž๋กœ ๋ณ€ํ™˜ ๋ถˆ๊ฐ€ํ•œ ์ž…๋ ฅ ๋ฐœ์ƒ ์‹œ ์˜ˆ์™ธ
    •  except EOFError: ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ์„ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒ ํ–ˆ์„ ์‹œ ์˜ˆ์™ธ
    •  except Exception: ๋‚˜๋จธ์ง€ ๋ชจ๋“  ์˜ˆ์™ธ์— ๋Œ€ํ•œ ์˜ˆ์™ธ

 

์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์šฐ์„ ์ˆœ์œ„

  • ์˜ˆ์™ธ๋Š” ์ƒ์œ„ ์˜ˆ์™ธ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์‹œ ํ•˜ํ–ฅ์‹์œผ๋กœ ์‹คํ–‰๋˜๊ธฐ์— ์„ธ๋ถ€์ ์ธ ์˜ˆ์™ธ๊ฐ€ ์ƒ์œ„ ์˜ˆ์™ธ๋ณด๋‹ค ์œ„์— ์œ„์น˜ํ•ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ex) Exception์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๊ณ  ValueError๊ฐ€ ์•„๋ž˜์— ์žˆ์œผ๋ฉด, ValueError๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

๋ฌธ์ œ ๋ถ„์„

def convert(a):
    return int(a[::-1])

try:
    num = input('์ •์ˆ˜ ์ž…๋ ฅ: ')
    print(convert(num))

except ValueError as e: 
    print("์ •์ˆ˜๋กœ ์ž…๋ ฅ")
    print(e) 
except EOFError as e:
    print("๊ฐ•์ œ์ข…๋ฃŒํ–ˆ๋„ค์š”")
    print(e)
except Exception as e:
    print("๋ญ”์ง€ ๋ชจ๋ฅผ ์—๋Ÿฌ ๋ฐœ์ƒ")
    print(e)


์ด๋•Œ -32๋ผ๋Š” ์Œ์ˆ˜๋ฅผ ๋„ฃ์œผ๋ฉด      print("๋ญ”์ง€ ๋ชจ๋ฅผ ์—๋Ÿฌ ๋ฐœ์ƒ")๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

์˜๋ฌธ์ด์—ˆ๋˜ ๊ฑด num์ž์ฒด๋ฅผ convertํ•จ์ˆ˜์— ์ ์šฉํ•œ๊ฑธ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ํ• ๋‹น๋ฐ›์ง€ ์•Š์•˜๋Š”๋ฐ, ์–ด์งธ์„œ num์ด convert์— ์ ์šฉ๋˜๋Š”์ง€์˜€๋‹ค. ๋‚˜๋Š” ๋‹จ์ˆœํžˆ ํ”„๋ฆฐํŠธํ•œ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ๊ณ , ๊ฐ•์‚ฌ๋‹˜๊ป˜ ์—ฌ์ญค๋ณด๋‹ˆ printํ•˜๊ธฐ์ „์— convert๊ฐ€ ๋จผ์ € ์ ์šฉ๋˜๊ณ , ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋กœ ์ ์šฉ๋˜๊ธฐ์— num์ด ๋’ค์ง‘ํžˆ๊ฒŒ ๋œ๋‹ค.

์ฆ‰, ๋‹จ์ˆœํžˆ ํ”„๋ฆฐํŠธํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ, convert(num) ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ๋จผ์ € ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

num์„ convert() ํ•จ์ˆ˜์— ์ ์šฉํ•œ ๊ฒฐ๊ณผ๋Š” num์ด ์•„๋‹Œ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์ด๋ฏ€๋กœ, num์ด ์ง์ ‘ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€, convert() ๋‚ด๋ถ€์—์„œ ๋’ค์ง‘ํžˆ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

EAFP & LBYL


๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” 

  • AttributeError - debug: EAFP ๋ฐฉ์‹
  • ValueError - ์ „ํ†ต์  LBYL ๋ฐฉ์‹


try, except๋งŒ์œผ๋กœ ๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋Š” ์—†๋‹ค. elif ๊ตฌ๋ฌธ์ฒ˜๋Ÿผ ์˜ˆ์™ธ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

๋‘๊ฐ€์ง€ ๋ฐฉ์‹ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

  • EAFP (Easier to Ask for Forgiveness than Permission)
    • AttributeError ๊ฐ™์€ ์˜ˆ์™ธ๋Š” try-except๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ ๋จผ์ € ์‹œ๋„ํ•˜๊ณ  ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • LBYL (Look Before You Leap)
    •  ValueError ๊ฐ™์€ ์˜ˆ์™ธ๋Š” if๋กœ ํ™•์ธํ•˜๊ณ  ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

์žฅ๊ณ ์˜ ๊ฒฝ์šฐ ctrl+C ๋ˆ„๋ฅด๋ฉด ๋กœ์ปฌ ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋˜๋Š”๋ฐ, ์ด ์˜ˆ์™ธ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ข…๋ฃŒ๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค. 

raise๋ฅผ ์จ์„œ ์˜ˆ์™ธ๋ฅผ ๊ฐ•์ œ๋กœ ๋ฐœ์ƒ์‹œ์ผœ ํ”„๋กœ๊ทธ๋žจ ํ๋ฆ„ ์ œ์–ด ํ•  ์ˆ˜๋„์žˆ๋‹ค.

while True:
    try:
        read = input("c:\> ")
        print(read)
    except EOFError:
        print("์‹คํ–‰ ์ข…๋ฃŒ")
        break

 

ํด๋ž˜์Šค


ํด๋ž˜์Šค, ๊ฐ์ฒด, ์ธ์Šคํ„ด์Šค์˜ ๊ด€๊ณ„

ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด ์ƒ์„ฑ์„ ์œ„ํ•œ ์„ค๊ณ„๋„์ด๋‹ค.  (์ธ์Šคํ„ด์Šค = ๊ฐ์ฒด = ์˜ค๋ธŒ์ ํŠธ)๋Š” ํด๋ž˜์Šค๋ฅผ ํ† ๋Œ€๋กœ ์‹ค์ œ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ

class Car:
    # ์ดˆ๊ธฐํ™” ๋ฉ”์„œ๋“œ (๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ)
    def __init__(self, make, model, year):
        self.make = make 
        self.model = model  
        self.year = year  

    # start ๋ฉ”์„œ๋“œ (๋™์ž‘์„ ์ •์˜)
    def start(self):
        print(f"{self.year} {self.make} {self.model} is start")

# Car ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค
my_car = Car('Toyota', 'Corolla', 2020)  
your_car = Car('Honda', 'Civic', 2021)  

my_car.start()  #์ถœ๋ ฅ: 2020 Toyota Corolla is start
your_car.start()  #์ถœ๋ ฅ: 2021 Honda Civic is start
  • ์†์„ฑ: ๊ฐ์ฒด์˜ ํŠน์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜
  • ๋ฉ”์†Œ๋“œ: ํด๋ž˜์Šค ๋‚ด์— ์ •์˜๋œ ํ•จ์ˆ˜๋กœ, ๊ฐ์ฒด์˜ ํ–‰๋™ ์ •์˜

 

ํด๋ž˜์Šค ๋ณ€์ˆ˜ vs ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ & ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ vs ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ

 

  • ํด๋ž˜์Šค ๋ณ€์ˆ˜: ํด๋ž˜์Šค ์ž์ฒด์— ์†ํ•œ ๋ณ€์ˆ˜, ์ด ๋ณ€์ˆ˜๋Š” ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ํ•˜๋Š” ๋ณ€์ˆ˜
    • ํด๋ž˜์Šค ์ด๋ฆ„์œผ๋กœ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ
  • ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜: ๊ฐ ์ธ์Šคํ„ด์Šค์— ์†ํ•œ ๋ณ€์ˆ˜, ๊ฐ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค self๋ฅผ ํ†ตํ•ด ์ดˆ๊ธฐํ™”๋œ ๊ฐ’์„ ๊ฐ€์ง
    • ๊ฐ ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•˜๊ณ , ํด๋ž˜์Šค์™€๋Š” ๊ด€๊ณ„์—†์ด ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ด€๋ฆฌ๋จ
  • ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ: ํด๋ž˜์Šค ์ž์ฒด์— ์ ์šฉ๋˜๋Š” ํ•จ์ˆ˜, ์ธ์Šคํ„ด์Šค์™€ ๊ด€๊ณ„์—†์ด ํด๋ž˜์Šค ์ž์ฒด์—์„œ ๋™์ž‘
    • @classmethod ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜. ์—†์œผ๋ฉด ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋กœ ๊ฐ„์ฃผ
  • ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ: ์ธ์Šคํ„ด์Šค์— ์ ์šฉ๋˜๋Š” ํ•จ์ˆ˜, ์ด ๋ฉ”์„œ๋“œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ self๋ฅผ ๋ฐ›์œผ๋ฉฐ, self๋ฅผ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ
    • ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ•ด๋‹น ๊ฐ์ฒด์— ๋Œ€ํ•ด ๋™์ž‘ 
class Dog:
    # ํด๋ž˜์Šค ๋ณ€์ˆ˜
    total_dogs = 0

    def __init__(self, name):
        # ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
        self.name = name
        Dog.total_dogs += 1  # ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ํด๋ž˜์Šค ๋ณ€์ˆ˜๊ฐ€ ์ฆ๊ฐ€

    # ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ
    @classmethod
    def get_total_dogs(cls):
        print(f"Total number of dogs: {cls.total_dogs}")

    # ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ
    def speak(self):
        print(f"{self.name} says woof!")

# ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
dog1 = Dog("Buddy")
dog2 = Dog("Bella")

# ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
dog1.speak()  # ์ถœ๋ ฅ: Buddy says woof!
dog2.speak()  # ์ถœ๋ ฅ: Bella says woof!

# ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
Dog.get_total_dogs()  # ์ถœ๋ ฅ: Total number of dogs: 2

 


 

Wednesday (01.08)

 

๋”๋ณด๊ธฐ

์˜ค๋Š˜์˜ ์ ์‹ฌ

 

๋ณ„์  โญ๏ธโญ๏ธโญ๏ธโญ๏ธ

๋ง›๋„ ์žˆ๊ณ , ๊ฐ€๊ฒฉ๋„ ์ €๋ ดํ•˜๋‹ค !!

https://naver.me/FRLHdh2V

 

๋„ค์ด๋ฒ„ ์ง€๋„

๋„๋ฆฌ๋š๋‹ญ

map.naver.com

 

 

๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŠน์„ฑ

  • ์ƒ์†, ๋‹คํ˜•์„ฑ, ์ถ”์ƒํ™” ์บก์Аํ™”

 

  • ์ƒ์†: ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹
  • ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์†๋ฐ›์•„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์–ด, ์ด๋ฅผ ํ†ตํ•ด ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์•„์ง„๋‹ค.

 

class Animal:
    def speak(self):
        print("Animal speaks")

class Dog(Animal):  
    def speak(self):
        print("Dog barks")

dog = Dog()
dog.speak()

 

  • ๋‹คํ˜•์„ฑ: ํ•˜๋‚˜์˜ ์ด๋ฆ„์œผ๋กœ ์—ฌ๋Ÿฌ ํ˜•ํƒœ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ, ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋กœ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ: ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ ์ด๋ฆ„์œผ๋กœ ์—ฌ๋Ÿฌ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ฒ˜๋ฆฌ
    • ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ: ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์—์„œ ๋ถ€๋ชจ ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ ์žฌ์ •์˜
class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        print("Dog barks")

class Cat(Animal):
    def speak(self):
        print("Cat meows")

def make_sound(animal: Animal):
    animal.speak()

dog = Dog()
cat = Cat()

make_sound(dog)  # ์ถœ๋ ฅ: Dog barks
make_sound(cat)  # ์ถœ๋ ฅ: Cat meows

 

  • ์ถ”์ƒํ™”: ๋ถˆํ•„์š”ํ•œ ์„ธ๋ถ€ ๋‚ด์šฉ์€ ์ค„์ด๊ณ , ์ค‘์š” ๋ถ€๋ถ„๋งŒ ๋…ธ์ถœํ•˜๋Š” ๊ฒƒ
  • ์„ธ๋ถ€ ๊ตฌํ˜„์€ ์„œ๋ธŒํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ •์˜

 

from abc import ABC, abstractmethod

class Animal(ABC):
    @abstractmethod
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        print("Dog barks")

dog = Dog()
dog.speak()  # ์ถœ๋ ฅ: Dog barks

 

  • ์บก์Аํ™”:  ๊ฐ์ฒด์˜ ๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ๊ณ , ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ์„ ์ œํ•œํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์ด๋ฅผ ํ†ตํ•ด ์ •๋ณด์€๋‹‰(๊ฐ์ฒด ์•ˆ์ „ ๊ด€๋ฆฌ) 
  • ์ ‘๊ทผ ์ œ์–ด์ž(private, protected, public)

 

class BankAccount:
    def __init__(self, balance):
        self.__balance = balance  # __balance๋Š” private ๋ฉค๋ฒ„

    def deposit(self, amount):
        if amount > 0:
            self.__balance += amount

    def get_balance(self):
        return self.__balance

account = BankAccount(1000)
account.deposit(500)
print(account.get_balance())  # ์ถœ๋ ฅ: 1500




class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print(f"{self.name} makes a sound.")

class Dog(Animal):  # Animal ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” Dog ํด๋ž˜์Šค
    def __init__(self, name, breed):
        super().__init__(name)  # ๋ถ€๋ชจ ํด๋ž˜์Šค์ธ Animal์˜ __init__ ํ˜ธ์ถœ
        self.breed = breed

    def speak(self):  # ๋ถ€๋ชจ์˜ speak ๋ฉ”์„œ๋“œ๋ฅผ ๋ฎ์–ด์”€ (์˜ค๋ฒ„๋ผ์ด๋”ฉ)
        print(f"{self.name} barks!")

    def get_breed(self):
        print(f"{self.name} is a {self.breed}.")

# Dog ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
dog = Dog("Buddy", "Golden Retriever")
dog.speak()  # ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ ์˜ค๋ฒ„๋ผ์ด๋“œ๋œ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
dog.get_breed()  # ์ž์‹ ํด๋ž˜์Šค์—์„œ ์ถ”๊ฐ€๋œ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ

#๊ฒฐ๊ณผ
#Buddy barks!
#Buddy is a Golden Retriever.

 

super()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ __init__() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ์ถ”๊ฐ€์ ์ธ breed ์†์„ฑ ์ดˆ๊ธฐํ™”

์ฆ‰, speak() ๋ฉ”์„œ๋“œ๊ฐ€ ๋ถ€๋ชจ ํด๋ž˜์Šค ๋‚ด์šฉ ๋ฎ์–ด์“ฐ๊ณ , ์ž์‹ ํด๋ž˜์Šค์—์„œ ๊ตฌํ˜„ํ•œ ๋‚ด์šฉ์„ ์‹คํ–‰ํ•จ

 

๋‹ค์ค‘์ƒ์†

 

class Animal:
    def speak(self):
        print("Animal makes a sound.")

class Flyable:
    def fly(self):
        print("Flying!")

class Bird(Animal, Flyable):  # Animal๊ณผ Flyable ํด๋ž˜์Šค๋ฅผ ๋ชจ๋‘ ์ƒ์†๋ฐ›์Œ
    def __init__(self, name):
        self.name = name

    def speak(self):
        print(f"{self.name} chirps!")

bird = Bird("Sparrow")
bird.speak()  # ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ ์˜ค๋ฒ„๋ผ์ด๋“œ๋œ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
bird.fly()  # Flyable ํด๋ž˜์Šค์—์„œ ์ƒ์†๋œ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ


ํŒŒ์ด์ฌ์€ ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ ๋‹ค์ค‘์ƒ์ˆ™์ด ํ—ˆ์šฉ๋˜๋‚˜, ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋‹ค์ค‘์ƒ์†์„ ์ง€์–‘ํ•ด์•ผํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋‹ค์ค‘์ƒ์†์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋กํ•˜์ž

 

class BankAccount:
    # ํด๋ž˜์Šค ๋ณ€์ˆ˜
    customer_total=0

    def __init__(self, __account, __name, __balance, __password):
        # ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
        self.__account = __account
        self.__name = __name
        self.__balance = __balance
        self.__password = __password
        BankAccount.customer_total+=1

    # ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ
    @classmethod
    def customer_total_check(cls):
        print(f"ํ˜„์žฌ๊นŒ์ง€ ์ƒ์„ฑ๋œ ๊ณ„์ขŒ ์ˆ˜๋Š” {cls.customer_total} ")


    #๊ธˆ์•ก์„ ์ž…๊ธˆํ•˜๋Š” ๋ฉ”์„œ๋“œ(put_balance)
    def put_balance(self,balance):
        self.__balance += balance
        print(f'์‚ฌ์šฉ์ž๊ฐ€ ์ž…๊ธˆํ•œ ๊ธˆ์•ก์€ {balance} ์ž…๋‹ˆ๋‹ค.')
        print("์ž…๊ธˆ์™„๋ฃŒ")
        return self.__balance
    
    #๊ธˆ์•ก ์ถœ๊ธˆํ•˜๋Š” ๋ฉ”์„œ๋“œ(out_balance)
    def out_balance(self,balance):
        if self.__balance<balance:
            print("๋ˆ์ด ๋ถ€์กฑํ•˜์—ฌ ์ถœ๊ธˆ๋ถˆ๊ฐ€")
        else:
            self.__balance -= balance
            print(f'์‚ฌ์šฉ์ž๊ฐ€ ์ถœ๊ธˆํ•œ ๊ธˆ์•ก์€ {balance} ์ž…๋‹ˆ๋‹ค.')
            print("์ถœ๊ธˆ์™„๋ฃŒ")
        return self.__balance

    #๊ธˆ์•ก ์กฐํšŒ(get_balance)
    def get_balance(self):
        print(f"ํ˜„์žฌ๊ธˆ์•ก: {self.__balance}")
        print("๊ธˆ์•ก ์กฐํšŒ์™„๋ฃŒ")

    #๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ(set_pw)
    def set_pw(self,__password):
        self.__password = __password 
        print("๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ์™„๋ฃŒ")

    #๋น„๋ฐ€๋ฒˆํ˜ธ ์กฐํšŒ(get_pw)
    
   def get_pw(self):
        print(f"ํ˜„์žฌ ๋น„๋ฐ€๋ฒˆํ˜ธ: {self.__password}")
        print("๋น„๋ฐ€๋ฒˆํ˜ธ ์กฐํšŒ์™„๋ฃŒ")

    

# ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
customer1 = BankAccount("1209","Kim",10000,"qwer")
customer2 = BankAccount("3487","Lee",20000,"asdf")
customer3 = BankAccount("5665","Park",30000,"zxcv")
customer4 = BankAccount("7843","Lim",40000,"uiop")


# ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ

customer1.get_balance()
customer1.get_pw()
customer1.put_balance(10000)
customer1.get_balance()
customer1.out_balance(10000)
customer1.get_balance()
customer1.set_pw("QWER")
customer1.get_pw()

BankAccount.customer_total_check()

์ž…๊ธˆ๊ณผ ์ถœ๊ธˆ๊ณผ ๊ฐ™์ด ๋‘ ๊ฐ€์ง€ ์ด์ƒ์˜ ๋™์ž‘์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๊ฒฝ์šฐ, ์„ธํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹ , ๋ฉ”์„œ๋“œ๋กœ ๊ฐ๊ฐ ์ž…๊ธˆ๊ณผ ์ถœ๊ธˆ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

@property ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ getter๋ฅผ ํ‘œํ˜„ํ•˜๊ณ , ์„ธํ„ฐ์˜ ๊ฒฝ์šฐ @get_pw.setter ์™€ ๊ฐ™์ด ํ‘œํ˜„ํ•˜์—ฌ ์„ธํ„ฐ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์†์„ฑ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š์•„ ์ง๊ด€์ ์œผ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ

 

๋งน๊ธ€๋ง

 

์ด๋ฆ„ ๋ณ€๊ฒฝ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์šฉ์–ด๋กœ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์•ž์— ๋”๋ธ” ์–ธ๋”์Šค์ฝ”์–ด(__)๋ฅผ ๋ถ™์—ฌ ํ‘œํ˜„ํ•œ๋‹ค. 

๋งน๊ธ€๋ง์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•œ๋‹ค.

'__my_private_variable'๊ณผ '__my_private_method'๋Š”  '_MyClass__my_private_variable'๊ณผ '_MyClass__my_private_method'๋กœ ๋ฐ”๋€๋‹ค. 


ํŒŒ์ด์ฌ์€ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ๋น„๊ณต๊ฐœ๋กœ ๋งŒ๋“ค์–ด๋„, ์—ฌ์ „ํžˆ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ์ด ๋˜๋Š”๋ฐ, ์ด๋ฅผ ์ˆจ๊ธฐ๊ธฐ ์œ„ํ•ด ๋งน๊ธ€๋ง์„ ์‚ฌ์šฉํ•œ๋‹ค.

class MyClass:
    def __init__(self):
        self.__my_private_variable = 42

    def __my_private_method(self):
        print("This is a private method.")

 

1. ์†์„ฑ๊ฐ’์„ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ํ•  ๋•Œ(like Private)

__secret์€ ์‹ค์ œ๋กœ_MyClass__secret์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉฐ, ์™ธ๋ถ€์—์„œ obj.__secret์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์†์„ฑ ์€๋‹‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

class MyClass:
    def __init__(self):
        self.__secret = "์ด๊ฑด ๋น„๋ฐ€์ด์—์š”!"

    def reveal_secret(self):
        return self.__secret

# ๊ฐ์ฒด ์ƒ์„ฑ
obj = MyClass()

# ์™ธ๋ถ€์—์„œ __secret์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ
try:
    print(obj.__secret)  # AttributeError: 'MyClass' object has no attribute '__secret'
except AttributeError as e:
    print(e)

# ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ ๊ฐ€๋Šฅ
print(obj.reveal_secret())  # "์ด๊ฑด ๋น„๋ฐ€์ด์—์š”!"

 

2. ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์†์„ฑ/๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ๋ง‰์„ ๋•Œ

๋งน๊ธ€๋ง์„ ์‚ฌ์šฉํ•˜๋ฉด, ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์†์„ฑ์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค.

class Parent:
    def __init__(self):
        self.__data = "๋ถ€๋ชจ์˜ ๋น„๋ฐ€"

    def show_data(self):
        return self.__data

class Child(Parent):
    def __init__(self):
        super().__init__()
        self.__data = "์ž์‹์˜ ๋น„๋ฐ€"  # ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ __data๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜๋ ค๊ณ  ์‹œ๋„

    def show_data(self):
        return self.__data  # ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ __data๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‹œ๋„

# ๊ฐ์ฒด ์ƒ์„ฑ
child = Child()

# ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ __data๋Š” ์˜ค๋ฒ„๋ผ์ด๋”ฉ๋˜์ง€ ์•Š์Œ
try:
    print(child.show_data())  # AttributeError ๋ฐœ์ƒ: 'Child' object has no attribute '_Parent__data'
except AttributeError as e:
    print(e)

# ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
parent = Parent()
print(parent.show_data())  # "๋ถ€๋ชจ์˜ ๋น„๋ฐ€"

 

Parent ํด๋ž˜์Šค์˜ __data ์†์„ฑ์€ _Parent__data๋กœ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜๊ณ , Child์—์„œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ์‹œ๋„ํ•˜์ง€๋งŒ, ์•ˆ๋œ๋‹ค.

child.show_data() ํ˜ธ์ถœ ์‹œ, ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ์˜ __data์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€๋งŒ, ์ด๋ฏธ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์–ด ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

 


 

Thursday (01.09)

 

๋”๋ณด๊ธฐ

์˜ค๋Š˜์˜ ์ ์‹ฌ


๋ณ„์  โญ๏ธโญ๏ธโญ๏ธโญ๏ธ

 

๋‚ ์ด ์ฐจ์„œ ์‚ฌ๋žŒ๋“ค์ด ๊ฑด๋ฌผ์—์„œ ์‹์‚ฌ๋ฅผ ํ•˜๋Š” ๋“ฏ ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ 20๋ถ„ ๊ธฐ๋‹ค๋ ธ๋‹ค ใ…œใ…œ

๋ฐฐ๊ฐ€ ๋„ˆ๋ฌด ๊ณ ํŒŒ์„œ ๊ธ‰ํ•˜๊ฒŒ ๋จน๋А๋ผ, ์‚ฌ์ง„๋„ ๋ชป ์ฐ์—ˆ๋‹ค.

์งœ๊ธ€์ด๋Š” ํ‰๋ฒ”ํ–ˆ๊ณ , ๋‘๋ฃจ์น˜๊ธฐ๊ฐ€ ๋ถˆ๋ง›์ด ๋‚˜์„œ ๋ง›์žˆ์—ˆ๋‹ค. ์—ฌ๊ธฐ๋Š” ๋‘๋ฃจ์น˜๊ธฐ ๋ง›์ง‘์ด๋‹ค.


https://naver.me/FmfzQILO

 

๋„ค์ด๋ฒ„ ์ง€๋„

์ด์„ ์ƒ์งœ๊ธ€์ด ์ƒ์•”์ 

map.naver.com

 

https://koreatstm.tistory.com/222

 

NumPy ์ •๋ฆฌ

์ž์„ธํ•œ ์ •๋ณด๋Š” ์•„๋ž˜ ์ฐธ๊ณ https://numpy.org/doc/ NumPy Documentation numpy.org NumPy๋ž€? ์•„๋ž˜๋Š” NumPy๋ฅผ์—ฐ์Šตํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ์ด๋‹ค.https://www.w3schools.com/python/numpy/default.asp NumPy ์ด๋ชจ์ €๋ชจ ์šฐ๋ฆฌ ์ฃผ๋ณ€์— ๋งŽ์€

koreatstm.tistory.com

 

 


 

Friday (01.10)

๋”๋ณด๊ธฐ

์˜ค๋Š˜์˜ ์ ์‹ฌ

 

๋ณ„์  โญ๏ธ โญ๏ธ โญ๏ธ

 

ํ‰๋ฒ”ํ•œ ์นผ๊ตญ์ˆ˜ ๋ง›

https://naver.me/FnmxyxfQ  

 

๋„ค์ด๋ฒ„ ์ง€๋„

๋ช…๋™ ์นผ๊ตญ์ˆ˜ ํ•ด๋ฌผ

map.naver.com

 

 

https://koreatstm.tistory.com/223

 

Pandas ์ •๋ฆฌ

์ž์„ธํ•œ ์ •๋ณด๋Š” ์•„๋ž˜ ์ฐธ๊ณ https://pandas.pydata.org/docs/ pandas documentation — pandas 2.2.3 documentationAPI reference The reference guide contains a detailed description of the pandas API. The reference describes how the methods work and which

koreatstm.tistory.com