2 minute read

지난번 내장함수 part.1에 이어 계속 해서 다른 내장함수들을 알아보자.

내장함수의 종류와 사용법 - 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')]