[Python] 내장 함수 - Part.2
지난번 내장함수 part.1에 이어 계속 해서 다른 내장함수들을 알아보자.
## 1. input
input은 사용자 입력을 받는 함수로 입력인수로 문자열을 전달하면 그 문자열은 프롬프트가 된다.
아래 예제를 보면 a = input()이 실행되면서 입력 값을 받는다. hi라고 입력하게 되면 변수 a에 hi가 저장되고 a를 출력하면 ‘hi’가 출력된다.
b도 마찬가지로 동작하는데 input()의 입력 인수로 “Enter: “라고 입력한 것을 볼 수 있는데 이처럼 입력 인수를 입력하게 되면 입력 값에 ‘Enter : ‘가 출력되고 입력 값을 입력할 수 있다.
1
2
3
4
5
6
7
8
9
>>> a = input()
hi <- 입력 값
>>> a
'hi'
>>> b = input("Enter: ")
Enter: hi <- 입력 값
>>>b
'hi'
2. int
int(x)는 우리가 익히 아는 것처럼 문자열 형태의 숫자나 소수점이 있는 숫자를 정수로 반환한다. 차이점이 있다면 다른 진수로 표현된 수를 10진수로 변환할 수 있다는 것이다.
문자열 형태로 값을 입력하고 해당 값의 진수를 입력하면 10진수로 변환된 값을 반환한다.
1
2
3
4
5
6
7
8
9
10
11
>>> int(3)
3
>>> int(7.8)
7
>>> int('11', 2)
3
>>> int('1A', 16)
26
3. map
map(f, iterable)은 함수(f)와 반복 가능한 데이터를 입력으로 받는다. map은 입력받은 데이터의 각 요소에 함수 f를 적용한 결과를 반환한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>> def two_times(numberList):
result = []
for number in numberList:
result.append(number*2)
return result
>>> result = two_times([1,2,3,4])
>>> print(result)
[2,4,6,8]
>>> def two_times(x):
return x*2
>>> list(map(two_times, [1,2,3,4]))
[2,4,6,8]
위 예제의 함수는 동일한 기능을 한다. 함수 two_times와 반복 가능한 데이터인 리스트 [1,2,3,4]를 입력 받고 순서대로 반복하며 2를 곱한 값을 반환한다.
마찬가지로 lambda를 사용해서 좀 더 간단히 변형할 수 있다. 아래 예제를 참고하자.
1
>>> list(map(lambda a: a*2, [1,2,3,4]))
4. oct
oct(x)는 정수를 8진수 문자열로 반환한다.
1
2
3
4
5
>>> oct(34)
'0o42'
>>> oct(12345)
'0o30071'
5. ord
ord(c)는 문자의 유니코드 숫자 값을 반환한다. 앞서 봤던 chr() 함수와 반대로 동작한다.
1
2
3
4
5
>>> ord('a')
97
>>> ord('가')
44032
6. open
open(filename, [mode])은 ‘파일 이름’과 ‘읽기 방법’을 입력 받아 파일 객체를 리턴하는 함수이다. 읽기 방법(mode)을 생략하면 기본 값인 읽기 모드(r)로 파일 객체를 만들어 리턴한다.
mode | 설명 |
---|---|
w | 쓰기모드로 파일 열기 |
r | 읽기 모드로 파일 열기 |
a | 추가 모드로 파일 열기 |
b | 바이너리 모드로 파일 열기 |
mode는 위와 같은 종류가 있는데 mode 값을 따로 설정하지 않으면 기본으로 r이 설정되고, b는 w,r,a와 함께 사용되는데 아래 예제와 같이 rb를 사용했다면 바이너리 읽기모드를 의미한다.
1
>>> f = open("binary_file", rb)
7. range
range([start,]stop[,step])은 for문과 함께 자주 사용되는 함수이다. 이 함수는 입력 받은 숫자에 해당하는 범위 값을 반복 가능한 객체로 만들어 반환한다.
7.1 인수가 하나일 경우
시작 숫자를 지정해 주지 않으면 range는 0부터 시작한다.
1
2
>>> list(range(5))
[0,1,2,3,4,5]
7.2 인수가 2개일 경우
인수가 2개인 경우 시작 숫자와 끝 숫자를 나타낸다. 단, 끝 숫자는 해당 범위에 포함되지 않는다.
1
2
>>> list(range(5,10))
[5,6,7,8,9]
7.3 인수가 3개일 경우
인수가 3개인 경우 마지막 세 번째 인수는 숫자 사이의 거리를 의미한다.
1
2
3
4
5
>>> list(rnage(1,10,2))
[1,3,5,7,9]
>>> list(rnage(0,-10,-1))
[0,-1,-2,-3,-4,-5,-6,-7,-8,-9]
8. sorted
sorted(iterable)는 입력 데이터를 정렬한 후 그 결과를 리스트로 반환한다.
1
2
3
4
5
6
7
8
>>> sorted([3,1,2])
[1,2,3]
>>> sorted(['a','c','b'])
['a','b','c']
>>> sorted("zero")
['e','o','r','z']
리스트에도 sort 함수가 있는데 이 함수는 객체 자체를 정렬할 뿐 순서대로 정렬되지 않는다는 차이가 있다.
9. zip
zip(*iterable)은 동일한 개수로 이루어진 데이터들을 묶어서 반환한다.
1
2
3
4
5
6
7
8
>>> list(zip([1,2,3], [4,5,6]))
[(1,4),(2,5),(3,6)]
>>> list(zip([1,2,3],[4,5,6],[7,8,9]))
[(1,4,7),(2,5,8),(3,6,9)]
>>> list(zip("abc","def"))
[('a','d'),('b','e'),('c','f')]