Study_note(zb_data)/Python

0710_μŠ€ν„°λ”” λ…ΈνŠΈ (파이썬 쀑급 01 ~ 19)

KloudHyun 2023. 7. 17. 17:41

πŸ“Œ ν•¨μˆ˜

  • 파이썬 ν•¨μˆ˜λŠ” μˆ˜ν•™μ˜ ν•¨μˆ˜μ™€ 동일

  • def ν‚€μ›Œλ“œ, ν•¨μˆ˜λͺ…, λ“€μ—¬μ“°κΈ° μ΄μš©ν•˜μ—¬ μ„ μ–Έ.

πŸ“Œ ν•¨μˆ˜ 호좜

  • ν•¨μˆ˜ λ‚΄μ—μ„œ λ‹€λ₯Έ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  수 μžˆλ‹€.
def fun1():
    print('fun1 호좜!')
    fun2()
    print('fun2 호좜 후에 μ‹€ν–‰!')
    
#λ¨Όμ € μ‹€ν–‰λœ fun(2)κ°€ μ²˜λ¦¬κ°€ λ‹€ 되고 λ‚˜μ„œ 맨 λ§ˆμ§€λ§‰μ— 좜λ ₯됨

def fun2():
    print('fun2 호좜!')
    fun3()

def fun3():
    print('fun3 호좜!')

fun1()

πŸ“ŒμΈμˆ˜μ™€ 맀개 λ³€μˆ˜

  • ν•¨μˆ˜ 호좜 μ‹œ ν•¨μˆ˜μ— 데이터λ₯Ό 전달할 수 μžˆλ‹€.
def greet(customer1, customer2): # 맀개 λ³€μˆ˜
    print('{}λ‹˜, {}λ‹˜ μ•ˆλ…•ν•˜μ„Έμš” :)'.format(customer1, customer2))

greet('Hong gil dong', 'Lee Hyun Joon') # ν•¨μˆ˜μ— 인수λ₯Ό λ„£μ–΄ 호좜
  • μΈμˆ˜μ™€ λ§€κ°œλ³€μˆ˜λŠ” 항상 μΌμΉ˜ν•˜μ—¬μ•Ό ν•œλ‹€.
  • λ§€κ°œλ³€μˆ˜ κ°œμˆ˜κ°€ μ •ν•΄μ§€μ§€ μ•Šμ€ 경우, ' * 'λ₯Ό μ΄μš©ν•œλ‹€.

πŸ“ŒμΈμˆ˜μ™€ 맀개 λ³€μˆ˜

  • return ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄, ν•¨μˆ˜ μ‹€ν–‰ κ²°κ³Όλ₯Ό ν˜ΈμΆœλΆ€λ‘œ λ°˜ν™˜ν•  수 μžˆλ‹€.
  • ν•¨μˆ˜κ°€ return을 λ§Œλ‚˜λ©΄ μ‹€ν–‰ μ’…λ£Œ.
def calculator (n1, n2):
    result = n1 + n2

    return result #result 값을 'ν˜ΈμΆœλΆ€λ‘œ' λ°˜ν™˜

print(calculator(10, 20)) #'ν˜ΈμΆœλΆ€λ‘œ' λ°˜ν™˜ ν•œ 값을 좜λ ₯

returnValue = calculator(10,20) #'ν˜ΈμΆœλΆ€λ‘œ' λ°˜ν™˜ ν•œ 값을 returnValue 값에 μ €μž₯
print(f'returnValue : {returnValue / 2}')

πŸ“Œμ „μ—­ λ³€μˆ˜

  • ν•¨μˆ˜ λ°–μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λ‘œ μ–΄λ””μ—μ„œλ‚˜ μ‚¬μš© κ°€λŠ₯, ν•¨μˆ˜ μ•ˆμ—μ„œ μˆ˜μ •μ€ λΆˆκ°€λŠ₯ν•˜λ‹€

πŸ“Œμ§€μ—­ λ³€μˆ˜

  • ν•¨μˆ˜ μ•ˆμ—μ„œ μ„ μ–Έλœ λ³€μˆ˜, ν•¨μˆ˜ μ•ˆμ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€

πŸ“Œ Global Keyword

  • Global ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄, ν•¨μˆ˜ μ•ˆμ—μ„œλ„ μ „μ—­λ³€μˆ˜ 값을 μˆ˜μ •ν•  수 μžˆλ‹€.
def printnums(): 
    num_in = 10
    print(f'num : {num_in}')

printnums() #μ§€μ—­ λ³€μˆ˜ (ν•¨μˆ˜ μ•ˆμ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯)
----------------------------------
num = 20 #μ „μ—­ λ³€μˆ˜ (ν•¨μˆ˜ μ•ˆμ—μ„œ μˆ˜μ •μ€ λΆˆκ°€λŠ₯)
def printNum():
    num = 30 #ν•¨μˆ˜ μ•ˆμ—μ„œ μ „μ—­ λ³€μˆ˜ num을 λ³€κ²½
    print(f'num : {num}') #μ—¬κΈ°μ„  30으둜 좜λ ₯

printNum()
print(f'Numbers : {num}') #ν•˜μ§€λ§Œ μ „μ—­λ³€μˆ˜λŠ” ν•¨μˆ˜μ•ˆμ—μ„œ μˆ˜μ •μ΄ λΆˆκ°€λŠ₯ν•˜κΈ°μ— 이건 20으둜 좜λ ₯
----------------------------------
num10 = 10 #μ „μ—­ λ³€μˆ˜ 
def numout():
    global num10 #global ν‚€μ›Œλ“œλ‘œ μ „μ—­ λ³€μˆ˜λ₯Ό ν•¨μˆ˜ μ•ˆμ—μ„œ μˆ˜μ •ν•  수 있게 함
    num10 = 50 #10을 50으둜 λ³€κ²½
    print(f'Numbers : {num10}') # 50으둜 좜λ ₯

numout()

print(f'Numbers : {num10}') #50으둜 좜λ ₯

πŸ“Œ 쀑첩 ν•¨μˆ˜

  • ν•¨μˆ˜ μ•ˆμ— 또 λ‹€λ₯Έ ν•¨μˆ˜κ°€ μžˆλŠ” ν˜•νƒœμ΄λ‹€.
    • λ‚΄λΆ€ ν•¨μˆ˜λ₯Ό λ°–μ—μ„œ ν˜ΈμΆœν•  수 μ—†λ‹€

좜처 : 제둜베이슀 데이터 슀쿨

πŸ“Œ lambda ν•¨μˆ˜

  • λžŒλ‹€ ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ ν•¨μˆ˜ 선언을 κ°„λ‹¨ν•˜κ²Œ ν•  수 μžˆλ‹€
#μ‚Όκ°ν˜•, μ‚¬κ°ν˜•, μ›μ˜ 넓이λ₯Ό λ°˜ν™˜ν•˜λŠ” lambdaν•¨μˆ˜λ₯Ό λ§Œλ“€μ–΄λ³΄μž.

trianglearea = lambda n1, n2:((n1 * n2) / 2)
squarearea = lambda n1, n2:(n1 * n2)
circlearea = lambda radius : radius * radius * 3.14

width = int(input('κ°€λ‘œ 길이 μž…λ ₯ : '))
height = int(input('μ„Έλ‘œ 길이 μž…λ ₯ : '))
radius = int(input('λ°˜μ§€λ¦„ 길이 μž…λ ₯ : '))

print(f'μ‚Όκ°ν˜• 넓이 : {trianglearea(width, height)}')
print(f'μ‚¬κ°ν˜• 넓이 : {squarearea(width, height)}')
print(f'μ›μ˜ 넓이 : {circlearea(radius)}')

πŸ“Œ λͺ¨λ“ˆ?

  • 이미 λ§Œλ“€μ–΄μ§„ ν›Œλ₯­ν•œ κΈ°λŠ₯, μ‚¬μš©μžκ°€ μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ λ§Œλ“€μ–΄μ§
  • λ‚΄λΆ€ λͺ¨λ“ˆ, μ™ΈλΆ€ λͺ¨λ“ˆ, μ‚¬μš©μž λͺ¨λ“ˆ λ“±μœΌλ‘œ ꡬ뢄

πŸ“Œ λͺ¨λ“ˆ λ§Œλ“€κΈ°

  • as ν‚€μ›Œλ“œλ‘œ λͺ¨λ“ˆ 이름을 단좕 μ‹œν‚¬ 수 μžˆλ‹€.
  • from ~ as ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•΄μ„œ λͺ¨λ“ˆμ˜ νŠΉμ • κΈ°λŠ₯만 μ΄μš©ν•  수 μžˆλ‹€.
def reversStr(str):
    reversedString = ''
    for c in i:
        reversedString = c + reversedString

    return reversedString #λͺ¨λ“ˆ μ œμž‘ μ™„λ£Œ
------------------------------------------------
import reverseStr #μ™ΈλΆ€μ—μ„œ importλ₯Ό μ΄μš©ν•˜μ—¬ λͺ¨λ“ˆμ„ 뢈러올 수 μžˆλ‹€.

str = input('λ¬Έμžμ—΄ μž…λ ₯ : ')

reversedstr = reverseStr.reversStr(str)
print(f'λ¬Έμžμ—΄ λ°˜μ „ : {reversedstr}')

πŸ“Œ __name__ μ „μ—­ λ³€μˆ˜

  • __name__μ—λŠ” λͺ¨λ“ˆ 이름이 μ €μž₯λ˜κ±°λ‚˜, '__main__' 이 μ €μž₯
  • 'μ‹€ν–‰ νŒŒμΌμ—μ„œλ§Œ' λͺ¨λ“ˆμ΄ μž‘λ™λ˜κ²Œ ν•˜λ €λ©΄
    if __name__ == '__main__': 에 μ›ν•˜λŠ” ν•¨μˆ˜λ₯Ό κ°œν–‰ν•˜μ—¬ μž‘μ„±
import unitConversion as uc
if __name__ == '__main__': 
#module μ‹€ν–‰νŒŒμΌμ—μ„œλ§Œ μž‘λ™λ˜κ³ , λ‹€λ₯Έ νŒŒμΌμ—μ„œ import ν–ˆμ„λ•Œ λ°‘ λΆ€λΆ„ 좜λ ₯은 μ•ˆλœλ‹€.
    inputNumber = int(input('길이 μž…λ ₯ : '))

    print(f'Value : {uc.cmTomm(inputNumber)}mm')

    print(f'Value : {uc.cmToInch(inputNumber)}inch')

    print(f'Value : {uc.cmToM(inputNumber)}m')

    print(f'Value : {uc.cmToFt(inputNumber)}Ft')

πŸ“Œ 자주 μ‚¬μš©ν•˜λŠ” λͺ¨λ“ˆ

- math λͺ¨λ“ˆ

#ν•©
listvar = [2, 5, 3.14, 58, 10, 2]
print(f'sum(listvar : {sum(listvar)}')

#μ΅œλŒ“κ°’
listvar = [2, 5, 3.14, 58, 10, 2]
print(f'max(listvar : {max(listvar)}')

#μ΅œμ†Ÿκ°’
listvar = [2, 5, 3.14, 58, 10, 2]
print(f'min(listvar : {min(listvar)}')

#κ±°λ“­μ œκ³±
print(f'{pow(13, 2)}')
print(f'{pow(13, 3)}')
print(f'{pow(13, 4)}')

#반올림
print(f'{round(3.141592, 1)}')
print(f'{round(3.141592, 2)}')
print(f'{round(3.141592, 3)}')

- random λͺ¨λ“ˆ

import random
# 0이상 1미만 λ‚œμˆ˜
print(f'random.random(): {random.random()}')

# 1이상 20μ΄ν•˜ λ‚œμˆ˜
print(f'random.randint(1, 20): {random.randint(1, 20)}')

# 1이상 20미만 λ‚œμˆ˜
print(f'random.randrange(1, 20): {random.randrange(1, 20)}')

# 1이상 21미만 λ‚œμˆ˜ 5개
print(f'random.sample(range(1, 21), 5): {random.sample(range(1, 21), 5)}')

# λ¬΄μž‘μœ„ ν•œκ°œ μΆ”μΆœ
listVar = [0, 1, 2, 3, 4, 5, 6]
print(f'random.choice(listVar): {random.choice(listVar)}')

# μ„žμŒ
print(f'listVar: {listVar}')
random.shuffle(listVar)
print(f'shuffle listVar: {listVar}')

- time λͺ¨λ“ˆ

import time

it = time.localtime()
print(f'time.localtime(): {it}')

print(f'it.tm_year : {it.tm_year}') #년도 
print(f'it.tm_mon : {it.tm_mon}') #μ›”
print(f'it.tm_mday : {it.tm_mday}') #λ‚ μ§œ
print(f'it.tm_hour : {it.tm_hour}') #μ‹œκ°„
print(f'it.tm_min : {it.tm_min}') #λΆ„
print(f'it.tm_sec : {it.tm_sec}') #초
print(f'it.tm_wday : {it.tm_wday}') #λ‚ μ§œ (0λΆ€ν„° μ›”μš”μΌ)