Python 5-2. 함수(2)

최다연·2021년 10월 14일
0

Python

목록 보기
7/10
post-thumbnail

재귀함수

함수 내부에서 자기 자신을 호출하는 함수이다. 절차적 기법으로 해결하기 어려운 문제를 직관적이고 간단하게 해결 가능하다.

재귀함수를 이용하여 팩토리얼을 계산하는 프로그램을 구현하였다.
팩토리얼은 n! = n * (n-1)! 으로 정의될 수 있고, 팩토리얼을 나타낼 때 팩토리얼을 사용하는 재귀적 정의를 사용하였다. 이것을 이용하여 재귀함수로 프로그래밍을 할 수 있다.

재귀함수를 이용하여 피보나치수열을 구하는 프로그램을 구현하였다. 피보나치 수열은 앞의 두 수 n, n+1번째 수를 더하여 n+2번째 수를 구하는 수열이다.

함수와 메소드

용어를 정리해보자

  • 메소드(method): 특정한 객채 유형에 적용할 수 있는 기능
  • 구분자(separator): 한 문자열을 하나 이상의 개별 문자열로 나누는 문자
  • 베이스(base): 출력 메소드 fomat을 호출하는 문자열
  • 플레이스홀더(placehoder)=대치 필드(replacement field): 인자의 출력을 목적으로 사용되는 중괄호. {}가 있는 곳으로 가서 인자가 출력이 된다. 여러개의 대치필드와 인자가 있다면 순서대로 대응된다.

입출력 관련 메소드

한꺼번에 여러 개의 입력 값을 받을 때 사용한다. split() 메소드는 입력된 문자를 공백 단위로 나누어준다. 입력받은 것은 모두 string형식, 즉 문자열이다. 만약 다른 형으로 입력을 받고 싶다면 형 변환을 해야 한다.

구분 단위를 공백이 아닌 다른 것을 사용하고 싶다면 인자로 제시해준다.

문자의 대소를 전환해주는 여러가지 메소드이다.

format 메소드

{}안에 숫자를 사용하여 다양한 출력이 가능하다. 예를들어 {0}은 인자 중 가장 먼저 나오는 인자, {1}은 두번째 인자가 된다. format() 내부에는 문자열 리터럴 뿐만 아니라 변수나 객체도 넣을 수 있다. 중간에 뜬 오류는 오타에 의한 것이다.

출력 간의 크기 지정을 할 수 있다. d는 decimal로 10진수를 의미하며 10진수로 출력한다는 뜻이다. 이 예제에서는 생략해도 무관하다. d앞의 수는 field width, 즉 필드 폭으로 3칸을 잡고 오른쪽 정렬하여 출력한다는 의미이다.

{}안에서 f는 실수를 출력한다는 의미이다. f앞에 수를 써주면 소수점 아래로 해당 수만큼 출력한다는 의미이다. 칸수는 특별히 지정하지 않아도 된다.

:,는 1000단위마다 쉼표를 출력해주는 역할을 한다.

플레이스홀더에 출력을 할 때는 키와 값을 인자로 넘겨주고 이 키를 이용한 출력도 가능하다. 순서에 상관 없이 키와 값 형식으로 입력된 정보가 유지되기만 하면 정상적인 출력을 얻을 수 있다.

그 외 다양한 메소드

인자는 여러자리 문자열이 들어가도 문제가 없다. find 메소드는 공백까지도 위치에 숫자를 할당한다. 만약 없는 문자열을 찾을 땐 -1을 반환한다.


join 메소드는 문자열 외에도 튜플이나 여러 문자열에서도 작용한다. strip은 양 끝의 공백을 지우는 메소드이다.

파이썬의 내장함수

파이썬에는 위와 같은 여러 내장 함수가 있다. eval은 evaluate는 뒤에 나오는 문자열을 수로 변환하여 사용한다. sorted에서 기본은 오름차순 정리를 하지만 reverse를 True로 바꿔주면 내림차순으로 정리해준다.

그외에도
id(): 고유 아이디를 반환
Type(): 객체의 자료형을 반환
chr(): 유니코드를 입력하면 그에 해당하는 문자를 반환
ord(): 문자를 입력하면 그에 해당하는 유니코드를 반환
등의 함수가 있다.

0개의 댓글