์ฝ๋ - ํจ์บ ์์ ์ฝ๋ ์ฐธ๊ณ (ํจ์บ ์์ ์ ๋ฆฌ)
<์ด์ ๊ธ>
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 ํจ์๋ฅผ ์ฌ์ฉํด์ฃผ์ด๋ ๋๋ค.
'ํ๋ก๊ทธ๋๋ฐ ์ธ์ด > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python ๊ธฐ์ด] 9. ๋ชจ๋๊ณผ ํจํค์ง (0) | 2021.08.02 |
---|---|
[python ๊ธฐ์ด] 8. ํด๋์ค , ์์ , ๋ค์ค์์ (0) | 2021.08.01 |
[python ๊ธฐ์ด] 6. ํ์ด์ฌ ํ๋ฆ์ ์ด (๋ฐ๋ณต๋ฌธ) - for, while (0) | 2021.07.31 |
[python ๊ธฐ์ด] 5. ํ์ด์ฌ ํ๋ฆ์ ์ด (์ ์ด๋ฌธ) - ์กฐ๊ฑด๋ฌธ if (0) | 2021.07.31 |
[python ๊ธฐ์ด] 4. ๋ฐ์ดํฐ ํ์ (2) (์๋ฃํ) - dictionary, set (0) | 2021.07.31 |