본문 바로가기
프로그래밍/PYTHON

[10일차] 포맷 스트링(지정자) / 재귀함수(recursion function) / map()

by B T Y 2017. 2. 21.
반응형

포맷 스트링(지정자) / 재귀함수(recursion function) / map()에 대해서 정리한다.




※ 포맷 스트링( 지정자 )

( format string )


- 문자열 내에서 출력 형태를 지정한다



정수 -> %d

실수 -> %f

문자 -> %c

문자열 -> %s

16진수 -> %x

8진수 -> %o






* 실수를 지정할때 소수 둘째자리까지 나타내려면 "%.2f" 와 같이 써주면 되고

%.02f는 둘째자리까지 표현하지만 남는 부분은 0으로 표시해주겠다는 의미이다 


* 정수 또한 마찬가지로 %2d가 되면 위에서처럼 1이 %d보다 한칸 밀려서 출력되는걸 볼수 있고

%02d는 남는 자리를 0으로 채워주는걸 볼수 있다





위와는 상관 없는 얘기지만 리스트를 사용할때 리스트 안에 원소들의 자료형을 바꿔줄때 이전까지는

for문으로 원소 하나하나에 접근해서 바꿔주었다.

그런 방식도 있지만 map() 함수를 이용하면 좀더 쉬운 방법으로 바꿔줄수 있다.



- map( 리스트에 적용할 함수, 리스트 )





( map() 함수를 사용해서 리스트 원소들을 변경 해주고 다시 리스트로 출력하려면

반드시 바꾼 내용을 다시 list()형식으로 지정해줘야 한다 )




그리고 출력할때 쓰는 print()함수는 보통 출력하면 뉴라인이 뒤에 들어가 있어서 줄바꿈이 된다.

print(출력내용, end='')처럼 end의 내용을 통해서 출력된 이후를 결정 할수 있다.




( 출력 내용만 넣고 print()를 실행 했을때의 결과 )





( 출력내용과 첫번째 print()에 end값을 바꿔서 출력해본 결과 )








※ 재귀함수( recursion function )



- 계속해서 자기 자신을 호출하는 함수라고 말할수 있다



https://namu.wiki/w/%EC%9E%AC%EA%B7%80%ED%95%A8%EC%88%98

개요를 읽어 보면 재귀함수에 대해서 쉽게 이해가 가능하다


GNU

예). GNU ( GNU ( GNU Not Unix ) Not Unix) Not Unix )



- 일반 for나 while을 사용하는 방식이 상향식 방식이고

재귀 함수는 하향식 방식이다



- 아래에 있는 두 함수의 실행결과만 보면 같지만

코드를 추적해보면 동작하는 방식이 서로 다르다는걸 알수 있다





( 일반적인 for문을 사용해서 1부터 n까지를 출력하는 함수 )




( 재귀 함수를 사용해서 1부터 n까지를 출력하는 함수 )



- 반복문을 통해서 표현이 가능하다면 재귀 함수를 이용해서 또한 가능하다



1. 1부터 n까지의 합을 구하는 재귀 함수


def recursion_sum(n):                                       


    if n > 0:                                                            

        return n + recursion_sum(n - 1)

    else:                                                                 

        return 0                                                     


2. n부터 m까지의 합을 구하는 재귀 함수


   def recursion_sum(n, m):                                        


     if n <= m:                                                           

            return n + recursion_sum(n + 1, m)

     else:                                                                   

         return 0                                                           



재귀 함수의 동작방식은 이 다음 재귀함수를 통한 지수함수, 곱셈함수 만들기를 통해 작성했다.




반응형

댓글