πŸ“—
JunegLee's TIL
  • TIL
  • python
    • class
    • String Basic
    • regularExpression
    • String function
    • Generator
    • String format
    • getset
    • module
    • while
    • numpy
    • print()
    • matplotlib
    • for
    • Boolean
    • tuple
    • package
    • input(variable)
    • list
    • if
    • file
    • type()
    • pandas
    • function
    • dictionary
    • ꡬ문 였λ₯˜μ™€ μ˜ˆμ™Έ
    • builtinFunction
    • Constructor
  • algorithm
    • sort
      • mergeSort
      • insertionSort
      • bubbleSort
      • heapSort
      • quickSort
      • selectionSort
    • recursion
    • Greedy
    • DepthFirstSearch
    • basic
      • DataStructure
    • hash
    • BreadthFirstSearch
  • tensorflow
    • keras
      • layers
        • Flatten
        • Flatten
        • Dense
        • Dense
        • Conv2D
        • Conv2D
    • tensorflow1x
    • tensorflow2x
  • DB
    • setting
    • join
    • subQuery
    • overview
  • deep-learning
    • neuralNetwork
    • perceptron
    • neuralNetworkLearning
    • convolution neural network
    • Gradient Descent
    • Linear Regression
    • backPropagation
    • logistic regression
    • overview
  • textPreprocessing
    • overview
  • java
    • basics
      • generic
      • Variable
      • String
    • theory
      • Object Oriented Programing
  • NLP
    • Embedding
    • Natural Language Processing
Powered by GitBook
On this page
  • 기본적인 ν•¨μˆ˜
  • ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜
  • ν‚€μ›Œλ“œ 맀개 λ³€μˆ˜
  • κΈ°λ³Έ λ§€κ°œλ³€μˆ˜ μ€‘μ—μ„œ ν•„μš”ν•œ κ°’λ§Œ μž…λ ₯ν•˜κΈ°
  • 리턴
  • 기본적인 ν•¨μˆ˜μ˜ ν™œμš©
  • λ²”μœ„ λ‚΄λΆ€μ˜ μ •μˆ˜λ₯Ό λͺ¨λ‘ λ”ν•˜λŠ” ν•¨μˆ˜
  • κΈ°λ³Έ λ§€κ°œλ³€μˆ˜μ™€ ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜λ₯Ό ν™œμš©ν•΄ λ²”μœ„μ˜ μ •μˆ˜λ₯Ό λ”ν•˜λŠ” μ •μˆ˜
  • μž¬κ·€ν•¨μˆ˜
  • ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄
  • λ©”λͺ¨ν™”
  • μ½”λ“œ μœ μ§€ 보수
  • ν•¨μˆ˜ κ³ κΈ‰
  • νŠœν”Œ
  • filter() ν•¨μˆ˜μ™€ map() ν•¨μˆ˜
  • λžŒλ‹€

Was this helpful?

  1. python

function

μ‚¬μš©λ²•

def ν•¨μˆ˜μ΄λ¦„(): 
    λ¬Έμž₯

기본적인 ν•¨μˆ˜

def print_3_times():
    print("μ•ˆλ…•ν•˜μ„Έμš”")
    print("μ•ˆλ…•ν•˜μ„Έμš”")
    print("μ•ˆλ…•ν•˜μ„Έμš”")
print_3_times()

ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜

# κ°€λ³€ λ§€κ°œλ³€μˆ˜κ°€ κΈ°λ³Έ λ§€κ°œλ³€μˆ˜λ³΄λ‹€ μ•žμ— 올 λ•Œ 
def print_n_times( *values, n=2):     
    for i in range(n):             
        for value in values:
            print(value)          
        print()
print_n_times("μ•ˆλ…•ν•˜μ„Έμš”", "즐거운", "파이썬 ν”„λ‘œκ·Έλž˜λ°", 3)

# κΈ°λ³Έ λ§€κ°œλ³€μˆ˜κ°€ κ°€λ³€ λ§€κ°œλ³€μˆ˜λ³΄λ‹€ μ•žμ— 올 λ•Œ (errorκ°€ λ°œμƒ)
def print_n_times(n=2, *values):     
    for i in range(n):             
        for value in values:
            print(value)          
        print()
print_n_times("μ•ˆλ…•ν•˜μ„Έμš”", "즐거운", "파이썬 ν”„λ‘œκ·Έλž˜λ°")

ν‚€μ›Œλ“œ 맀개 λ³€μˆ˜

def print_n_times( *values, n=2):     
    for i in range(n):             
        for value in values:
            print(value)          
        print()
print_n_times("μ•ˆλ…•ν•˜μ„Έμš”", "즐거운", "파이썬 ν”„λ‘œκ·Έλž˜λ°", 3)
# μ•ˆλ…•ν•˜μ„Έμš”     
# 즐거운
# 파이썬 ν”„λ‘œκ·Έλž˜λ°
# 3 
# => λ‹€μŒκ³Ό 같이 3이 좜λ ₯되며, λ¬Έμžμ—΄μ€ λ‘λ²ˆμ„ λ°˜λ³΅ν•œλ‹€
def print_n_times(*values, n=2):
    for i in range(n):
        for value in values:
            print(value)
        print()
print_n_times("μ•ˆλ…•ν•˜μ„Έμš”", "즐거운", "파이썬 ν”„λ‘œκ·Έλž˜λ°", n=3)
# μ•ˆλ…•ν•˜μ„Έμš”     
# 즐거운
# 파이썬 ν”„λ‘œκ·Έλž˜λ°
# => λ¬Έμžμ—΄μ΄ μ„Έλ²ˆ λ°˜λ³΅ν•œλ‹€

κΈ°λ³Έ λ§€κ°œλ³€μˆ˜ μ€‘μ—μ„œ ν•„μš”ν•œ κ°’λ§Œ μž…λ ₯ν•˜κΈ°

# μ—¬λŸ¬ ν•¨μˆ˜ 호좜 ν˜•νƒœ 
def test(a, b=10, c=100):
    print(a + b + c)
# 1) κΈ°λ³Έ ν˜•νƒœ
test(10, 20, 30)
# 2) ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜λ‘œ λͺ¨λ“  λ§€κ°œλ³€μˆ˜λ₯Ό μ§€μ •ν•œ ν˜•νƒœ
test(a=10, b=100, c=200)
# 3) ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜λ‘œ λͺ¨λ“  λ§€κ°œλ³€μˆ˜λ₯Ό 마ꡬ작이둜 μ§€μ •ν•œ ν˜•νƒœ
test(c=10, a=100, b=200)
# 4) ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜λ‘œ 일뢀 λ§€κ°œλ³€μˆ˜λ§Œ μ§€μ •ν•œ ν˜•νƒœ
test(10, c=200)

리턴

# 자료 없이 λ¦¬ν„΄ν•˜κΈ° 
def return_test():
    print("A μœ„μΉ˜μž…λ‹ˆλ‹€.")
    return # λ¦¬ν„΄ν•©λ‹ˆλ‹€.
    print("B μœ„μΉ˜μž…λ‹ˆλ‹€.")
return_test() # A μœ„μΉ˜μž…λ‹ˆλ‹€.

# μžλ£Œμ™€ ν•¨κ»˜ λ¦¬ν„΄ν•˜κΈ°
def return_test():
    return 100
value = return_test()
print(value) # 100

# 아무것도 λ¦¬ν„΄ν•˜μ§€ μ•ŠκΈ° 
def return_test():
    return
value = return_test()
print(value) # None

기본적인 ν•¨μˆ˜μ˜ ν™œμš©

μ‚¬μš©λ²•

def ν•¨μˆ˜(λ§€κ°œλ³€μˆ˜):
    λ³€μˆ˜ = μ΄ˆκΉƒκ°’
    μ—¬λŸ¬ κ°€μ§€ 처리 
    μ—¬λŸ¬ κ°€μ§€ 처리 
    μ—¬λŸ¬ κ°€μ§€ 처리 
    return λ³€μˆ˜

λ²”μœ„ λ‚΄λΆ€μ˜ μ •μˆ˜λ₯Ό λͺ¨λ‘ λ”ν•˜λŠ” ν•¨μˆ˜

def sum_all(start, end):
    output = 0
    for i in range(start, end + 1):
        output += i
    return output
print("0 to 100:", sum_all(0, 100))       # 0 to 100: 5050
print("0 to 1000:", sum_all(0, 1000))     # 0 to 1000: 500500
print("50 to 100:", sum_all(50, 100))     # 50 to 100: 3825
print("500 to 1000:", sum_all(500, 1000)) # 500 to 1000: 375750
print("---------------------------------------")

κΈ°λ³Έ λ§€κ°œλ³€μˆ˜μ™€ ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜λ₯Ό ν™œμš©ν•΄ λ²”μœ„μ˜ μ •μˆ˜λ₯Ό λ”ν•˜λŠ” μ •μˆ˜

def sum_all(start=0, end=100, step=1):
    output = 0
    for i in range(start, end + 1, step):
        output += i
    return output
print("A.", sum_all(0, 100, 10))      # A. 550
print("B.", sum_all(end=100))         # B. 5050
print("C.", sum_all(end=100, step=2)) # C. 2550

μž¬κ·€ν•¨μˆ˜

# 반볡문으둜 νŒ©ν† λ¦¬μ–Ό κ΅¬ν•˜κΈ° 
def factorial(n):
    output = 1
    for i in range(1, n + 1):
        output *= i
    return output
print("1!:", factorial(1))
print("2!:", factorial(2))
print("3!:", factorial(3))
print("4!:", factorial(4))
print("5!:", factorial(5))

# μž¬κ·€ ν•¨μˆ˜λ‘œ νŒ©ν† λ¦¬μ–Ό κ΅¬ν•˜κΈ° 
def factorial(n):
    # n이 0이라면 1을 리턴
    if n == 0:
        return 1
    # n이 0이 μ•„λ‹ˆλΌλ©΄ n * (n-1)!을 리턴
    else:
        return n * factorial(n - 1)
print("1!:", factorial(1))
print("2!:", factorial(2))
print("3!:", factorial(3))
print("4!:", factorial(4))
print("5!:", factorial(5))

ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄

  • n번째 μˆ˜μ—΄ = (n-1) 번째 μˆ˜μ—΄ + (n-2) 번째 μˆ˜μ—΄

# μž¬κ·€ ν•¨μˆ˜λ‘œ κ΅¬ν˜„ν•œ ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄(1)
def fibonacci(n):
    if n == 1:
        return 1
    if n == 2:
        return 1
    else:
        return fibonacci(n - 1) + fibonacci(n - 2)
print("fibonacci(1):", fibonacci(1))
print("fibonacci(2):", fibonacci(2))
print("fibonacci(3):", fibonacci(3))
print("fibonacci(4):", fibonacci(4))
print("fibonacci(5):", fibonacci(5))

# μž¬κ·€ ν•¨μˆ˜λ‘œ κ΅¬ν˜„ν•œ ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄(2)
counter = 0
def fibonacci(n):
    print("fibonacci({})λ₯Ό κ΅¬ν•©λ‹ˆλ‹€.".format(n))
    global counter # global λ³€μˆ˜μ΄λ¦„ : ν•¨μˆ˜μ˜ μ™ΈλΆ€μ˜ λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©
    counter += 1
    if n == 1:
        return 1
    if n == 2:
        return 1
    else:
        return fibonacci(n - 1) + fibonacci(n - 2)
fibonacci(10)
print("---")
print("fibonacci(10) 계산에 ν™œμš©λœ λ§μ…ˆ νšŸμˆ˜λŠ” {}λ²ˆμž…λ‹ˆλ‹€.".format(counter))
# 트리 ν˜•νƒœμ—μ„œ 각각의 지점을 λ…Έλ“œ, λ…Έλ“œ 쀑에 κ°€μž₯ λ§ˆμ§€λ§‰ λ‹¨κ³„μ˜ λ…Έλ“œλ₯Ό 리프라고 λΆ€λ₯Έλ‹€

λ©”λͺ¨ν™”

  • λ”•μ…”λ„ˆλ¦¬λ₯Ό μ‚¬μš©ν•΄μ„œ ν•œλ²ˆ κ³„μ‚°ν•œ 값을 μ§€μ •ν•˜λŠ” 것을 λ©”λͺ¨λΌκ³  ν•˜λ©°,

  • λ©”λͺ¨ν™”λ₯Ό μ‚¬μš©ν•˜λ©΄ μ‹€ν–‰ ν›„ κ³§λ°”λ‘œ κ²°κ³Όλ₯Ό 좜λ ₯ν•  μ •λ„λ‘œ 속도가 빨라진닀.

    dictionary = {
      1: 1,
      2: 2
    }
    def fibonacci(n):
      if n in dictionary:
          # λ©”λͺ¨ λ˜μ–΄ 있으면 λ©”λͺ¨λœ κ°’ 리턴
          return dictionary[n]
      else:
          # λ©”λͺ¨ λ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©΄ 값을 ꡬ함
          output = fibonacci(n - 1) + fibonacci(n - 2)
          dictionary[n] = output
          return output
    print("fibonacci(10):", fibonacci(10))
    print("fibonacci(20):", fibonacci(20))
    print("fibonacci(30):", fibonacci(30))
    print("fibonacci(40):", fibonacci(40))
    print("fibonacci(50):", fibonacci(50))

μ½”λ“œ μœ μ§€ 보수

# p νƒœκ·Έλ‘œ κ°μ‹ΈλŠ” ν•¨μˆ˜ 
def p(content):
    # κΈ°μ‘΄ μ½”λ“œ 주석 처리 
    # return "<p>{}</p>".format(content)
    return "<p class='content-line'>{}</p>".format(content)

print(p("μ•ˆλ…•ν•˜μ„Έμš”"))
print(p("κ°„λ‹¨ν•œ HTML νƒœκ·Έλ₯Ό λ§Œλ“œλŠ” μ˜ˆμž…λ‹ˆλ‹€."))

ν•¨μˆ˜ κ³ κΈ‰

νŠœν”Œ : ν•¨μˆ˜μ™€ ν•¨κ»˜ 많이 μ‚¬μš©λ˜λŠ” λ¦¬μŠ€νŠΈμ™€ λΉ„μŠ·ν•œ μžλ£Œν˜•μœΌλ‘œ, λ¦¬μŠ€νŠΈμ™€ λ‹€λ₯Έμ μ€ ν•œλ²ˆ κ²°μ •λ˜λ©΄ μš”μ†Œλ₯Ό λ°”κΏ€ 수 μ—†λ‹€λŠ” 것 λžŒλ‹€ : 맀개 λ³€μˆ˜λ‘œ ν•¨μˆ˜λ₯Ό μ „λ‹¬ν•˜κΈ° μœ„ν•΄ ν•¨μˆ˜ ꡬ문을 μž‘μ„±ν•˜λŠ” 것이 번거둭고, μ½”λ“œ 곡간 λ‚­λΉ„λΌλŠ” 생각이 λ“€λ•Œ ν•¨μˆ˜λ₯Ό κ°„λ‹¨ν•˜κ³  μ‰½κ²Œ μ„ μ–Έν•˜λŠ” 방법

νŠœν”Œ

# λ¦¬μŠ€νŠΈμ™€ νŠœν”Œμ˜ νŠΉμ΄ν•œ μ‚¬μš©
[a, b] = [10, 20]
(c, d) = (10, 20)
print("a:", a) # a: 10
print("b:", b) # b: 20
print("c:", c) # c: 10
print("d:", d) # d: 20

# κ΄„ν˜Έκ°€ μ—†λŠ” νŠœν”Œ 
tuple_test = 10, 20, 30, 40
print("# κ΄„ν˜Έκ°€ μ—†λŠ” νŠœν”Œμ˜ κ°’κ³Ό μžλ£Œν˜• 좜λ ₯")
print("tuple_test:", tuple_test) # tuple_test: (10, 20, 30, 40)
print("type(tuple_test):", type(tuple_test)) # type(tuple_test): <class 'tuple'>
print("-----------------------------")
a, b, c = 10, 20, 30
print("# κ΄„ν˜Έκ°€ μ—†λŠ” νŠœν”Œμ„ ν™œμš©ν•œ ν• λ‹Ή")
print("a:", a) # a: 10
print("b:", b) # b: 20
print("c:", c) # c: 30

# λ³€μˆ˜μ˜ 값을 κ΅ν™˜ν•˜λŠ” νŠœν”Œ
a, b = 10, 20
print("# κ΅ν™˜ μ „ κ°’")
print("a:", a)
print("b:", b)
print("-----------------------------")
a, b = b, a
print("# κ΅ν™˜ ν›„ κ°’")
print("a:", a)
print("b:", b)
print("-----------------------------")

# μ—¬λŸ¬ 개 κ°’ λ¦¬ν„΄ν•˜κΈ° 
def test():
    return (10, 20)
a, b = test()
print("a:", a)
print("b:", b)

# ν•¨μˆ˜μ˜ 맀개 λ³€μˆ˜λ‘œ ν•¨μˆ˜ μ „λ‹¬ν•˜κΈ° 
# λ§€κ°œλ³€μˆ˜λ‘œ 받은 ν•¨μˆ˜λ₯Ό 10번 ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜
def call_10_times(func):
    for i in range(10):
        func()
def print_hello():
    print("μ•ˆλ…•ν•˜μ„Έμš”")
call_10_times(print_hello)

filter() ν•¨μˆ˜μ™€ map() ν•¨μˆ˜

ν•¨μˆ˜λ₯Ό λ§€κ°œλ³€μˆ˜λ‘œ μ „λ‹¬ν•˜λŠ” λŒ€ν‘œμ μΈ ν‘œμ€€ν•¨μˆ˜

map(ν•¨μˆ˜, 리슀트)
filter(ν•¨μˆ˜, 리슀트)
def power(item):
    return item * item
def under_3(item):
    return item < 3

list_input_a = [1, 2, 3, 4, 5]
# map() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
output_a = map(power, list_input_a)
print("# map() ν•¨μˆ˜μ˜ μ‹€ν–‰ κ²°κ³Ό")
print("map(power, list_input_a):", output_a)
print("map(power, list_input_a):", list(output_a))
print("-----------------------------------------")
# filter() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
output_b = filter(under_3, list_input_a)
print("# filter() ν•¨μˆ˜μ˜ μ‹€ν–‰ κ²°κ³Ό")
print("filter(under_3, list_input_a):", output_b)
print("filter(under_3, list_input_a):", list(output_b))
print("+========================================")

λžŒλ‹€

lambda λ§€κ°œλ³€μˆ˜ : 리턴값

# λžŒλ‹€ 
power = lambda x: x * x
under_3 = lambda x: x < 3
list_input_a = [1, 2, 3, 4, 5]

output_a = map(power, list_input_a)
print("# map() ν•¨μˆ˜μ˜ μ‹€ν–‰ κ²°κ³Ό")
print("map(power, list_input_a):", output_a) 
# map(power, list_input_a): <map object at 0x000001DC96167208>
print("map(power, list_input_a):", list(output_a))
# map(power, list_input_a): [1, 4, 9, 16, 25]
print("-----------------------------------------")
output_b = filter(under_3, list_input_a)
print("# filter() ν•¨μˆ˜μ˜ μ‹€ν–‰ κ²°κ³Ό")
print("filter(under_3, list_input_a):", output_b)
# filter(under_3, list_input_a): <filter object at 0x000001DC961660C8>
print("filter(under_3, list_input_a):", list(output_b))
# filter(under_3, list_input_a): [1, 2]
# 인라인 λžŒλ‹€
list_input_a = [1, 2, 3, 4, 5]
output_a = map(lambda x: x * x, list_input_a)
print("# map() ν•¨μˆ˜μ˜ μ‹€ν–‰ κ²°κ³Ό")
print("map(power, list_input_a):", output_a)
print("map(power, list_input_a):", list(output_a))
print("-----------------------------------------")
output_b = filter(lambda x: x < 3, list_input_a)
print("# filter() ν•¨μˆ˜μ˜ μ‹€ν–‰ κ²°κ³Ό")
print("filter(under_3, list_input_a):", output_b)
print("filter(under_3, list_input_a):", list(output_b))
PreviouspandasNextdictionary

Last updated 4 years ago

Was this helpful?