tuple 형태로 여러 개의 값을 반환할 수 있다
def diff (a,b) :
return a-b, b-a
a,b = diff(4,6) #unpacking
list, dictionary, set 등 자료구조로 리턴 가능하다
def numeric(a,b):
return [a+b,a-b,a*b,a/b]
위치 인자
def minus(a,b):
return a-b
print(minus(5,4))
키워드인자
print(minus(b=3,a=2))
기본 매개변수 값 지정
def repeat(text, count = 1):
print((text+" " )* count)
repeat("a")
repeat("b",2)
repeat(text="hello",count=3)
tuple 가변인자
position arguments
def print_args(*args):
print(args, type(args))
print_args(1,2,3,4,5)
dictionary 가변인자 : **kwargs
keyword arguments를 받아 dictionary로 저장한다
def print_kwargs(**kwargs):
for k, v in kwargs.items():
print(k, v)
print_kwargs(idnum = '111')
print_kwargs(idnum = '111', subject = 'math')
둘다 사용
def whatever(*args,**kwargs):
for i in args:
print(i, end = ',')
for a in kwargs:
print(a, end = ',')
whatever(1,3,4, a = 1)
파이썬에서는 모든 것이 객체다. 함수도 객체다.
def square(x):
return x*x
fun = square
print(fun(3)) # 9
def add(a,b):
return a+b
def minus(a,b):
return a-b
def multifly(a,b):
return a*b
def divide(a,b):
return a/b
list_functions = [add,minus,multifly,divide]
for i in list_functions:
print(i(3,4))
global namespace : 파일 내에서 모두 사용 가능, 전역변수와 동일한 의미
local namespace : 함수 내에서 사용 가능
namespace 내부에서 외부의 변수를 read 하는 것은 가능하지만 변경하는 것은 불가능하다.
-> global 사용
global_a = "a"
def fun1():
global global_a
print(global_a)
global_a = "b"
fun1()
print(global_a)
람다함수 : 이름이 없는 익명함수. 함수를 한줄로 간단하게 표현할 때
def str2int(a):
return int(a)
a = (lambda x : int(x))("10") # a = 10
b = (lambda x : int(x))
print(b(10)) # 10
map() : iterable 전체에 함수 적용
def double(x):
return x*2
list_a = [1,2,3,4,5]
a = map(double, list_a)
print(a) # [2, 4, 6, 8, 10]
expression 인자에 string 값을 넣으면 해당 값을 그대로 실행하여 출력해준다.
eval('123 * 1')
python 3.6 부터 제공하는 string format
중괄호를 이용하여 바로 format 할 수 있다
name = 'Gayoung'
print(f'Hi my name is {name}')
f 접두사를 통해 바로 이용 가능하다
반올림
round(n,3)
소수 셋째자리까지 반올림한다.