์ฝ”๋“œ - ํŒจ์บ  ์ˆ˜์—… ์ฝ”๋“œ ์ฐธ๊ณ  (ํŒจ์บ  ์ˆ˜์—… ์ •๋ฆฌ)

 

 

<์ด์ „ ๊ธ€>

https://silvercoding.tistory.com/38

 

[python ๊ธฐ์ดˆ] 6. ํŒŒ์ด์ฌ ํ๋ฆ„์ œ์–ด (๋ฐ˜๋ณต๋ฌธ) - for, while

์ฝ”๋“œ - ํŒจ์บ  ์ˆ˜์—… ์ฝ”๋“œ ์ฐธ๊ณ  (ํŒจ์บ  ์ˆ˜์—… ์ •๋ฆฌ) <์ด์ „ ๊ธ€> https://silvercoding.tistory.com/37 https://silvercoding.tistory.com/36 https://silvercoding.tistory.com/35 https://silvercoding.tistory.com/34..

silvercoding.tistory.com

 

 

 

* ํ•จ์ˆ˜ ์ •์˜ ๋ฐฉ๋ฒ• 

def ํ•จ์ˆ˜๋ช…(parameter):

    code 

 

 

 

- ์˜ˆ์ œ 1 : ์ถœ๋ ฅ(print) 

def hello(world):
    print('Hello', world)
hello('Silver !')
hello(77777)

 Hello Silver ! 
 Hello 77777 

ํ•จ์ˆ˜๋ช…(parameter) ์˜ ํ˜•ํƒœ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

- ์˜ˆ์ œ 2 : ๋ฆฌํ„ด(return) 

def hello_return(world):
    val = "Hello" + str(world)
    return val
str = hello_return("Silver !!!!!")
print(str)

 HelloSilver !!!!! 

ํ•จ์ˆ˜ ์•ˆ์—์„œ returnํ•˜์—ฌ ๋ณ€์ˆ˜๋กœ ๋ฆฌํ„ด๊ฐ’์„ ๋ฐ›์•„์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. 

 

 

- ์˜ˆ์ œ 3 : ์—ฌ๋Ÿฌ ๊ฐ’ ๋ฆฌํ„ด 

def func_mul(x):
    y1 = x * 100 
    y2 = x * 200 
    y3 = x * 300 
    return y1, y2, y3
val1, val2, val3 = func_mul(100)
print(type(val1), val1, val2, val3)

 <class 'int'> 10000 20000 30000 

์—ฌ๋Ÿฌ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋ฐ›์•„์ค„ ์ˆ˜ ์žˆ๋‹ค. 

 

 

- ์˜ˆ์ œ 4 : ๋ฆฌ์ŠคํŠธ ๋ฆฌํ„ด 

def func_mul2(x):
    y1 = x * 100 
    y2 = x * 200 
    y3 = x * 300 
    return [y1, y2, y3]
lt = func_mul2(100)
print(lt, type(lt))

 [10000, 20000, 30000] <class 'list'> 

 

 

 

- ์˜ˆ์ œ 5 : ๊ฐ€๋ณ€ ์ธ์ž ๋ฐ›๊ธฐ (*args / **kwargs) 

(1) *args 

: ํŠœํ”Œ ํ˜•ํƒœ๋กœ ๋ฐ›์Œ ( ๊ฐ€๋ณ€ ํŠœํ”Œ ) 

def args_func(*args):
    print(args)

 

 

def args_func2(*args):
    for t in args:
        print(t)
def args_func3(*args):
    for i, v in enumerate(args):
        print(i, v)
args_func('Kim')
args_func('Kim', 'Park')
args_func2('Kim', 'Park', 'Lee')
args_func3('Kim', 'Park', 'Lee')

 ('Kim',) 

 ('Kim', 'Park') 

์œ„์™€ ๊ฐ™์ด ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ž…๋ ฅํ•œ ๊ฐœ์ˆ˜ ๋งŒํผ  ํŠœํ”Œ์•ˆ์˜ ๊ฐ’์ด ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 
 Kim 
 Park 

 Lee 

ํŠœํ”Œ์ด๋ฏ€๋กœ ๋ฐ˜๋ณต๋ฌธ์—์„œ ์‚ฌ์šฉํ•ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. 
 0 Kim 
 1 Park 
 2 Lee 

์ธ๋ฑ์Šค์™€ ๊ฐ’์„ ๋ชจ๋‘ iterable ํ•˜๊ฒŒ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” enumerate๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ์ด๋‹ค. 

 

 

(2) **kwargs

: dictionary๋กœ ๋ฐ›์Œ ( ๊ฐ€๋ณ€ ๋”•์…”๋„ˆ๋ฆฌ ) 

def kwargs_func(**kwargs):
    print(kwargs)
def kwargs_func2(**kwargs):
    for k, v in kwargs.items():
        print(k, v)
kwargs_func(name1='Kim')
kwargs_func(name1='Kim', name2='Park', name3='Lee')
kwargs_func2(name1='Kim', name2='Park', name3='Lee')

 {'name1': 'Kim'} 
 {'name1': 'Kim', 'name2': 'Park', 'name3': 'Lee'} 

์ธ์ž์— key = value ํ˜•ํƒœ๋กœ ๋„ฃ์–ด์ฃผ๋ฉด ๊ทธ ๊ฐœ์ˆ˜ ๋Œ€๋กœ ๋”•์…”๋„ˆ๋ฆฌ ๊ฐ’์ด ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 
 name1 Kim 
 name2 Park 
 name3 Lee 

dictionary ๊ฐ์ฒด์ด๋ฏ€๋กœ ๋ฐ˜๋ณต๋ฌธ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

 

(3) ์ „์ฒด ํ˜ผํ•ฉ 

def example_mul(arg1, arg2, *args, **kwargs):
    print(arg1, arg2, args, kwargs)

์ผ๋ฐ˜, ๊ฐ€๋ณ€ ํŠœํ”Œ, ๊ฐ€๋ณ€ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋ชจ๋‘ ๋ฐ›๋Š” ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค.  

example_mul(10, 20)
example_mul(10, 20, 'park', 'kim')
example_mul(10, 20, 'park', 'kim', age1=24, age2=35)

 10 20 () {} 
 10 20 ('park', 'kim') {} 
 10 20 ('park', 'kim') {'age1': 24, 'age2': 35} 

 

 

 

- ์˜ˆ์ œ 6 : ์ถฉ์ฒฉํ•ฉ์ˆ˜ (ํด๋กœ์ €) - ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ 

def nested_func(num):
    def func_in_func(num):
        print('>>>', num)
    print('in func')
    func_in_func(num + 10000)
nested_func(10000)

 in func 
 >>> 20000 

nested_fun(10000)์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด print๋ฌธ์ด ์‹คํ–‰๋˜๊ณ , func_in_func(10000 + 10000)์ด ํ˜ธ์ถœ์ด ๋˜์–ด func_in_func์•ˆ์˜ print๋ฌธ์ด ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

<์ฐธ๊ณ  : ํด๋กœ์ € ํฌ์ŠคํŒ…>

https://silvercoding.tistory.com/26?category=957523 

 

[python ์‹ฌํ™”] 9. ๋ณ€์ˆ˜ ๋ฒ”์œ„, Closure, Decorator

์ฝ”๋“œ - ํŒจ์บ  ์ˆ˜์—… ์ฝ”๋“œ ์ฐธ๊ณ  (ํŒจ์บ  ์ˆ˜์—… ์ •๋ฆฌ) <์ด์ „ ๊ธ€> https://silvercoding.tistory.com/25 ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค. ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋Š” ์–ด๋ ต๋‹ค๊ณ  ๋Š๋ผ๋Š” ๊ฒƒ์ด ๋‹น์—ฐํ•˜๋‹ค. ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ

silvercoding.tistory.com

 

 

- ์˜ˆ์ œ 7 : hint -> ์ธ์ž ํƒ€์ž…๊ณผ ๋ฆฌํ„ด ํƒ€์ž… ๋ช…์‹œํ•ด์ฃผ๊ธฐ 

def func_mul3(x: int) -> list:
    y1 = x * 100 
    y2 = x * 200 
    y3 = x * 300 
    return [y1, y2, y3]
print(func_mul3(5))

 [500, 1000, 1500] 

์ธ์ž x๋Š” int, ๋ฆฌํ„ดํƒ€์ž…์€ list๋ผ๊ณ  ๊ธฐ์ž…ํ•ด์ฃผ์–ด ๋ช…ํ™•ํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

- ์˜ˆ์ œ 8 : lambda 

* ๋žŒ๋‹ค์‹ : ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ, ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ, ์ฝ”๋“œ ๊ฐ„๊ฒฐ 

* ํ•จ์ˆ˜ : ๊ฐ์ฒด ์ƒ์„ฑ -> ๋ฆฌ์†Œ์Šค (๋ฉ”๋ชจ๋ฆฌ) ํ• ๋‹น vs ๋žŒ๋‹ค : ์ฆ‰์‹œ ์‹คํ–‰ (Heap ์ดˆ๊ธฐํ™”) -> ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ธฐํ™” 

 

(1) ์ผ๋ฐ˜์  ํ•จ์ˆ˜ : ๋ณ€์ˆ˜ ํ• ๋‹น 

def mul_10(num: int) -> int:
    return num * 10
val_func = mul_10   # ---> ๊ฐ์ฒด ์ƒ์„ฑ -> ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น 
print(val_func) 
print(type(val_func))

print(val_func(10))

 <function mul_10 at 0x00000212CEA148C8> 
 <class 'function'> 
 100 

 

 

 

(2) ๋žŒ๋‹ค์‹ 

lambda_mul_10 = lambda num : num * 10 
print(">>>", lambda_mul_10(10))

 >>> 100 

 

 

* ํ•จ์ˆ˜์˜ ์ธ์ž์— ํ•จ์ˆ˜ ๋„ฃ๊ธฐ 

def func_final(x, y, func):
    print(x * y * func(10))

์ธ์ž์— ํ•จ์ˆ˜๋ฅผ ๋„ฃ๋Š” ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค. 

func_final(10, 10, lambda_mul_10)

 10000 

 

print(func_final(10, 10, lambda x: x * 1000))

 1000000 
 None 

์ด๋ ‡๊ฒŒ ๋ฐ”๋กœ lambda ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ์–ด๋„ ๋œ๋‹ค. 

 

 

 

+ Recent posts