이번 글에서는 Python에 이미 들어가 있는 기본 함수들에 대해서 설명하겠습니다. Python도 C/C++처럼 Built-in 함수들이 존재합니다. 프로젝트를 할 때 개발자들이 모든 필요한 함수를 코딩을 하지는 않습니다. 왜냐하면 기본적으로 어느 정도 간단한 함수에 대해서는 제공을 해주기 때문입니다. 다른 곳도 마찬가지지만, Python은 개발자들을 위해서 모든 함수를 하나하나 만들 필요 없이 자주 사용하는 함수들에 대해서는 제공을 해 줍니다.
아무래도 처음 Python을 시작하는 분들이라면 기본 제공하는 함수를 다 알기 어렵고, 솔직히 코딩을 많이 한 사람들도 다 알고 쓰는 건 아닙니다. 그냥 그때그때 구글링 해서 찾고 있으면 쓰는 거고 없으면 만들어서 쓰는 거죠. 그래도 매번 구글링 하기는 그러니 여기다가 많이 쓰이는 기본 함수들에 대해서 설명 및 예시를 보여드리겠습니다.
1. abs() : 절대값을 주는 함수
처음은 절댓값으로 변환해 주는 함수를 시작하겠습니다. 이 함수의 기능은 절댓값으로 변환해주는 함수입니다. 정말 진짜 많이 쓰이는 함수입니다. 입력으로 int 혹은 float둘다 사용이 가능합니다. 혹시 입력이 허수가 포함되어 있으면 값의 크기가 나옵니다.
예시
양수를 넣을 경우는 당연히 그냥 값이 나올 것이고, 음수인 경우 다 양수로 바뀌어서 나오고 있는 것을 확인할 수 있습니다.
1+1j를 입력이 된 경우에는 크기 값이 return이 되었습니다.
2. int(), float()와 같은 데이터 타입 함수
이 함수들도 많이 사용됩니다. 다른 데이터 타입의 변수들의 데이터 타입을 같게 하기 위해서 종종 사용됩니다. 말 그래도 변수가 가지고 있는 데이터 타입을 함수 명과 같은 데이터 타입으로 바꿔주는 함수들입니다.
예시
float으로 바꾸는 경우는 뒤에. 0을 붙여주는 게 다입니다. 여기서 봐야 할 것은 int()함수를 사용할 때인데, 소수점자리를 다 버림을 하는 것을 확인할 수 있었습니다. 코딩을 할 때 꼭 기억하시기 바랍니다.
아, 그리고 하나 또 중요한 함수가 있는데, 그 함수는 chr()함수 입니다. 이 함수는 위에 함수들을 보고 얘기를 하면 간단하게 int의 값을 문자로 바꿔주는 함수인데, 조금 이해가 안 갈 수도 있습니다. 일단 문자를 변환할 때는 아스키코드 번호를 이용해서 변환이 됩니다. 아스키 코드 번호표는 너무 커서 여기서 작성을 안 하겠습니다. 그냥 구글 찾으면 나오니까 그거 보면서 아래를 보시면 이해가 될 것 같습니다.
예시
이렇듯이 양의 정수를 넣을 경우 아스키코드를 보고 변환이 되어서 문자가 나오게 됩니다.
여기서 음수를 넣거나 다른 데이터 타입을 넣을 경우 에러 메시지가 나옵니다. 그러니 꼭 양의 정수를 입력으로 넣으셔야 합니다.
3. ord() : chr()의 반대 함수입니다.
ord() 함수의 경우에는 문자를 입력을 하면 아스키코드를 보고 정수의 값을 주는 함수입니다.
예시
chr()과 ord() 함수를 사용했을 때 값을 보면 정 반대의 함수인 것을 확인할 수 있습니다.
이 함수도 다른 데이터 타입을 넣을 경우 오류가 나옵니다. 그리고 문자열을 넣을 경우에도 오류가 나옵니다. 왜냐하면 숫자를 문자 한 개로 변환하기 때문입니다. 그래서 문자열이 입력으로 들어가면 length가 1이 아니라서 안된다고 나옵니다.
4. hex(),oct(),bin() 진수 변환을 할 때 쓰이는 함수
이번 함수들은 일반 십진법 정수를 다른 진법을 표현을 할 때 쓰이는 함수입니다. bin()은 이진법으로 바꿔주는 함수이고 oct는 8진법, hex는 16진법으로 바꿔주는 함수입니다.
예시
위에서 보면 bin인 경우 결과 앞에 0b가 있고, oct의 경우에는 0o이 있고, hex인 경우 0x가 있습니다. 이것을 보고 어떤 함수의 결과인지 알 수가 있습니다.
이 함수들은 음수 정수가 들어와도 문제없이 사용이 가능합니다. 하지만 float을 넣을 경우 오류가 발생합니다. 당연하겠지만, str혹은 chr 또한 입력으로 넣으면 오류가 발생합니다.
5. max(),min() 최대 최솟값을 찾기 위한 함수
프로젝트를 하다 보면 최댓값 혹은 최솟값을 찾는 경우가 많은 데 그때 사용되는 함수들입니다.
예시
위에 결과를 보면 알 수 있듯이 min의 경우 최솟값을 max의 경우 최댓값을 결과로 줍니다. 이때 하나의 리스트를 만들어서 넣어도 상관은 없습니다. 하지만 비교를 할 때 리스트와 정수를 같이 넣을 경우 오류가 발생을 합니다. 왜냐하면 리스트와 정수를 비교를 하기는 어렵기 때문입니다. 하지만 float과 int가 있는 경우에는 문제없이 비교를 해서 제일 큰 혹은 제일 작은 값을 결과로 줍니다. 그리고 문자와 정수 혹은 실수는 같이 쓰이면 오류가 발생합니다. 아까와 마찬가지로 문자와 숫자는 비교가 안되기 때문입니다. 하지만 문자끼리는 크고 작음을 비교할 수 있습니다. 아까 위에서 얘기한 아스키코드를 보면 모든 문자에 대해서 각각 숫자(정수)의 값을 가지고 있습니다. 그래서 그 정수의 수를 사용해서 문자를 비교하고 제일 큰 혹은 제일 작은 값을 결과로 줍니다. 아마도 문자 분석 같은 것(과제 혹은 숙제의 경우) 할 때 많이 사용됩니다.
6. len() 길이를 알려주는 함수입니다.
길이라고 하면 두 점 사이의 거리 이런 것이 아니라, 일반적으로 항목 수를 결과로 줍니다. 문자열, 바이트 열, 튜플 리스트 같은 곳에서 많이 사용됩니다. 왜냐하면 길이를 알아야 반복문 같은 곳에서 사용해서 딱 그 길이만큼만 반복문이 돌아가게 하기 위해서 자주 사용됩니다.
예시
위에 그림처럼 사용을 하면 됩니다. 처음에는 빈 리스트이기 때문에 값이 0으로 나온 것이고, 나머지 아래는 문자 하나인 경우에는 1이라고 나왔고, 문자열인 경우에는 문자열 길이가 값으로 나왔습니다. 여기서 입력을 그냥 정수 혹은 실수를 하면 오류가 발생을 합니다. 그러니 len을 사용할 때는 꼭 리스트, 문자열 같은 것을 쓸 때만 쓰고, 정수나 실수에 대해서 len을 쓰시면 안 됩니다.
7. pow() 수의 거듭제곱을 해줍니다.
이 함수는 제곱 같은 것을 할 때 사용을 하는데 거듭제곱 연산자 하고 똑같습니다. (a**b = ab)
예시
이 함수의 경우 입력 값이 2개가 있어야 합니다. 2개의 숫자를 입력을 하지 않으면 오류가 발생합니다. 이 함수의 경우 다른 대안도 있기 때문에 사용하는 분들도 있고 안 쓰는 분들도 있습니다. 이건 정말 자기 편한 스타일을 따라 하시면 됩니다. pow함수를 사용해도 되고 거듭제곱 연산자를 사용해도 됩니다.
8. sum() 총합을 제공해주는 함수입니다.
이름만 봐도 알 수 있듯이 총합을 제공해 주는 함수입니다. 입력으로는 리스트 안에 정수 혹은 실수로 들어있을 때 사용이 가능합니다.
예시
위에 그림을 보면 알 수 있듯이 리스트에 숫자로 되어 있는 경우에 그 숫자들의 합을 결과로 주는 함수임을 확인할 수 있습니다. 그런데 여기서 입력을 하나의 정수 혹은 실수로 하면 오류가 발생합니다. 그리고 문자열을 넣어도 마찬가지로 오류가 발생합니다.
9. print() 입력으로 들어온 값을 commend 창에 Display 해주는 함수입니다.
이 함수는 정말 많이 사용됩니다. 특히 Debug를 할 때 괜찮은 방식이 없는 Python에서는 print만큼 Debug 할 때 좋은 것은 없습니다. 변수에 제대로 된 값이 들어갔는지 확인을 위해서 자주 사용했습니다. 그만큼 자주 사용되니 이 함수에 대해서는 조금 더 자세히 설명을 하겠습니다.
예시
위에 그림처럼 문자열을 그대로 넣을 경우 그 문자열을 Display 합니다. 변수를 넣을 경우 변수의 값에 뭔가 들어가 있으면 그 변수가 가지고 있는 값을 Display 합니다. 당연히 변수를 선언을 안 했으면 오류가 발생합니다. 그냥 이렇게 간단하게 써도 되지만, Debug 할 때 이렇게만 쓰면 알아보기 힘듭니다. 예를 들어서 print를 많이 쓰는 경우 어떤 변수의 값이 print 되었는지 확인이 어렵기 때문에 문자와 같이 변수를 출력합니다.
예시
위에처럼 print를 할 때 설명이 있으면 어떤 변수에 어떤 값이 들어갔는지 확인이 될 것이고, 그것에 따라서 Debug를 쉽게 할 수 있게 됩니다. %d의 경우는 정수인 경우에 %f는 실수 %s는 문자열인 경우에 사용을 합니다.
10. type() 입력에 대해서 어떤 데이터 타입인지 알려주는 함수입니다.
정말 말 그대로 데이터 타입을 확인하는데 쓰이는 함수입니다.
예시
위에 결과를 보면 실수는 float으로, 정수는 int, 리스트는 list, 문자열은 str이라고 데이터 타입을 알려주는지 확인을 할 수 있습니다.
이것 말고도 많은 함수들이 존재합니다. 뿐만 아니라 간단하게 라이브러리를 추가해서 사용할 수 있는 함수들도 존재합니다. 라이브러리를 다운로드하여서 하는 경우도 있지만, 기본적으로 제공을 해주는 것도 많습니다. 이렇게 힘든 개발자들을 위해서 Python이 많은 함수들을 제공하고 있습니다. 꼭 다 알 필요는 없습니다. 하지만 한번 정도 어떤 함수를 제공해 주는지 확인을 할 필요는 있습니다. 그래야 나중에 매번 함수를 만들지 않고, 찾아서 쓸 수가 있기 때문입니다.
'Python' 카테고리의 다른 글
10. Python 기초이기 보다는 전반적인 알고리즘 (0) | 2019.06.26 |
---|---|
09. Python 기초 유용한 라이브러리 (0) | 2019.06.25 |
07. Python 기초 간단한 문제들 (0) | 2019.06.23 |
06. Python기초 Draw Graph(그래프 그리기) (0) | 2019.06.22 |
05. Python기초 문자열과 함수 (0) | 2019.06.21 |