반응형

내장 함수란 ?

 

파이썬에서 기본적으로 제공하는 기능입니다.

 

내장 함수의 종류는 많기 때문에, 예제는 제가 주로 공부한 함수에 대해 작성하였으며 더 많은 내장함수 종류들은 해당 링크에 첨부하였습니다 !

 

https://wikidocs.net/32

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

 

Ex 1)

print(sum([3,5,7]))
print(int(1.7), float(4), str(5))
print(round(1.2), round(1.6)) # 반올림

 

sum 은 합을 구하는 함수로 3 + 5 + 7 의 값을 출력한다.

int 는 정수이므로 1 출력, float 는 실수이므로 4.0 출력 str 은 문자열이므로 5를 문자열로 출력

round는 반올림으로 1.2 -> 1 출력, 1.6 -> 2 출력

 

출력 결과

 

 

Ex 3)

# zip 함수란 ? 동일한 개수로 이루어진 자료형을 묶어주는 함수

# 아래 예제는 공통 개수만큼 묶어주기 때문에 30은 출력되지 않는다.

 

x = [10,20,30]
y = ['a', 'b']

for i in zip(x,y):
    print(i)
    

 

출력 결과

 

 

Ex 4) 사용자 정의 함수

사용자 정의 함수 형태는 이렇습니다.

def 함수명():
	print('내용')

 

def DoFunc1():
    print('DoFunc1 실행')
    
DoFunc1()
  
print(DoFunc1) # 주소를 출력한 것

abc = DoFunc1
abc()

 

함수명을 DoFunc1() 로 주었고 실행하면 'DoFunc1 실행' 이 출력되도록 작성하였습니다.

DoFunc1() 에서 print 내용을 출력하고

DoFunc1 로 줄 경우 값이 아닌 해당 주소를 출력하게 됩니다.

 

abc에 DoFunc1을 정의해주었기 때문에 abc() 또한 'DoFunc1 실행'을 출력하게 됩니다.

 

출력 결과

 

 

Ex 5) 사용자 함수 내에 또다른 사용자 함수를 정의

 

def DoFunc2(a, b):
    print('DoFunc2')
    result = DoFunc3(a,b)
    return result

def DoFunc3(m,n):
    imsi = m+n
    return imsi  

bcd = DoFunc2
print(bcd(5, 6))

 

DoFunc2(a, b) 함수 안에 DoFunc3 함수를 또 한번 정의 해주었습니다.

출력 내용 bcd(5,6)을 보면 DoFunc2 함수로 가게됩니다.

이후 우선 'DoFunc2'를 출력하고 DoFunc3 함수의 a에는 5 b에는 6이 들어가고 ,

그 해당 값 계단을 DoFunc3 함수에서 imsi 변수에 5 + 6을 하여 반환해주면 그 값이 result 값으로 들어가게 됩니다.

 

출력 결과

 

 

Ex 6) 비슷한 내장함수 응용

 

player = '전국대표'

def FuncSoccer():
    name = '축구선수'
    print(name,player)
    
FuncSoccer()
print(player)

 

출력 결과

 

 

Ex 7) 사용자 정의 함수에 전역변수 지역변수 이용

 

a = 10; b = 20; c = 30
print('1) a: ' , a, ', b:', b, ', c: ', c)
def Good():
    a = 40
    b = 50
    print('2) a: ' , a, ', b:', b, ', c: ', c)
Good()

 초기에 전역변수로 주었지만, Good 함수 안에서 a는 40 b는 50으로 주었기 때문에

1)은 각각의 출력 값이 10 20 30 이지만 2)는 40 50 30 입니다.

 

출력 결과

 

 

여기서 지역변수로 값을 변경 하는 것이 아닌 전역변수의 값을 내장 함수 안에서 바꾸고 싶다면

global keyword를 사용해주면 됩니다.

 

a = 10; b = 20; c = 30
print('1) a: ' , a, ', b:', b, ', c: ', c)
def Good():
    a = 40
    b = 50
    global c
    c = 100
    
Good()
print('2)a: ' , a, ', b:', b, ', c: ', c)

변수 c를 global 키워드를 통해 100으로 변경해주었습니다.

 

여기서 global 선언을 해주지 않는다면 c 값은 100이 아닌 30 이 출력 됩니다.

 

lambda

 

# def 와 동일한 역할로 함수 이름이 길면 사용하기에 부적합하다.

 

lambda 매개변수1, 매개변수2, ... : 표현식
aaa = lambda a, su = 10: a + su
print(aaa(5))
print(aaa(5,6))

여기서는 a+su를 더한 값을 반환하는 람다 함수를 만들었습니다.

 

출력 결과

 

 

bbb = lambda a, *tu, **di:print(a, tu, di)
bbb(1,2,3,m=4, n=5)

li = [lambda a, b: a+b, lambda a, b: a*b]
print(li[0](3,4))
print(li[1](3,4))

# 다른 함수에서 람다 사용
print(list(filter(lambda a:a<5, range(10))))
print(list(filter(lambda a:a % 2, range(10))))

 

반응형

'python' 카테고리의 다른 글

python - range  (0) 2020.05.08
python - 모듈  (0) 2020.05.08
python - 반복문 (for)  (0) 2020.05.07
python - 반복문 (while)  (0) 2020.05.07
python - 제어문 ( if )  (0) 2020.05.07

+ Recent posts