Python : Function

김가영·2020년 10월 4일
0

Python

목록 보기
7/17
post-thumbnail
  • 인자 arguments : 함수로 전달한 값
  • 매개변수 parameters : 함수 내의 변수

함수


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)


가변인자를 갖는 함수

  • 가변인수(variable arguments) : argument의 개수가 정해지지 않은.

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))

namespace

  • 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)

lambda 함수

람다함수 : 이름이 없는 익명함수. 함수를 한줄로 간단하게 표현할 때

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]

eval 함수

expression 인자에 string 값을 넣으면 해당 값을 그대로 실행하여 출력해준다.

eval('123 * 1')

f-string

python 3.6 부터 제공하는 string format
중괄호를 이용하여 바로 format 할 수 있다

name = 'Gayoung'
print(f'Hi my name is {name}')

f 접두사를 통해 바로 이용 가능하다

round

반올림

round(n,3)

소수 셋째자리까지 반올림한다.

profile
개발블로그

0개의 댓글