[Python] 파이썬 내장함수 모음 2탄 hex / id / input / int / isinstance / len / list / map / max / min / oct / open
[Python] 파이썬 내장함수 모음 2탄 hex / id / input / int / isinstance / len / list / map / max / min / oct / open
hex
hex(x)는 정수 값을 입력받아 16진수(hexadecimal)로 변환하여 리턴
>>> hex(234)
'0xea'
>>> hex(3)
'0x3'
id
id(object)는 객체를 입력받아서 객체의 고유 주소값을 리턴.
>>> a = 3
>>> id(3)
93851867576896
>>> id(a)
93851867576896
>>> b = a
>>> id(b)
93851867576896
위 코드를 보면
3과 a와 b의 고유 주소 값이 93851867576896인 것을 볼 수 있다.
이는 3과 a와 b가 모두 같은 객체임을 확인할 수 있는 방법이다.
input
input([prompt])는 사용자의 입력을 받는 함수이다.
a = input()라는 함수를 입력하면, 사용자가 입력하고 싶은 문자를 입력할 수 있다.
나는 hi라고 입력을 해보았다.
>>> a
hi
그럼 당연히 a를 불러오면 hi가 출력될 것이다.
input의 매개변수로 문자열을 주면, 이 문자열은 프롬프트가된다.
int
int(x)는 문자열 형태의 숫자나 소수점이 있는 숫자 등
정수형이 아닌 자료구조들을 정수형으로 리턴한다.
>>> int('3')
3
>>> int(3.4)
3
문자열 '3'을 입력하면 정수 3이 출력되고,
실수형 3.4를 입력하면 정수 3이 되는 것을 볼 수 있다.
int(x, radix)는 radix 진수로 표현된 문자열 x를 10진수로 변환해서 돌려준다.
>>> int('11',2)
3
>>> int('1A', 16)
26
2진수로 표현된 11의 10진수를 리턴하고,
16진수로 표현된 1A의 10진수를 리턴한다.
isinstance
isinstance(object, class)는 첫 번째 인수로 인스턴트, 두 번째 인수로 클래스 이름을 받는다.
인풋 인스턴트가 그 클래스의 인스턴트인지 확인해서
참이면 Ture
거짓이면 False
를 반환한다.
>>> class Person:
pass
>>> a = Person()
>>> isinstance(a,Person)
True
임시로 Person이라는 클래스를 만들고
Person 클래스의 인스턴트 a를 생성해준다.
isinstance에 a와 person을 넣고 출력하면,
True가 나온다.
즉, a가 person의 인스턴트임을 확인할 수 있다.
>>> b = 3
>>> isinstance(b, Person)
False
b의 객체를 하나 만들고,
b가 Person의 인스턴트인지 확인을 해보자,
결과값은 False이므로 b는 Person의 인스턴트가 아니다.
len
len(s)는 입력값이 s의 길이(요소의 전체 개수)를 돌려주는 함수이다.
>>> len("python")
6
>>>len([1,2,3])
3
>>>len((1,'a'))
2
문자열, 리스트, 튜플에 상관없이 전체 요소의 길이 값을 리턴한다.
list
list(s)는 반복 가능한 자료형 s를 받아서 리스트로 만들어준다.
>>> list("python")
['p', 'y', 't', 'h', 'o', 'n']
>>> list((1,2,3))
[1, 2, 3]
map
map(f, iterable)은 함수(f)와 반복 가능한(iterable) 자료형을 인풋값으로 받는다.
입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 리턴한다.
>>> 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]
리스트 요소를 입력받아서 각 요소에 2를 곱한 결과를 리턴하는 two_times라는 함수를 만들어봤다.
잠깐 해석해보자면,
- 리스트의 첫 번째 요소인 1이 two_times함수에 들어가서 for문을 돈다.
1*2의 과정을 거쳐 2가 리턴
- 리스트 두 번째 요소인 2가 two_times함수에 들어가서 for문을 돈다.
2*2의 과정을 거쳐 2가 리턴
- 리스트 세 번째 요소인 3이 two_times함수에 들어가서 for문을 돈다.
3*2의 과정을 거쳐 6이 리턴
- 리스트 네 번째 요소인 4가 two_times함수에 들어가서 for문을 돈다.
4*2의 과정을 거쳐 8이 리턴
결과 : [2,4,6,8]
위 함수를 map을 이용하면 간단하게 바꿀 수 있다.
>>> def two_times(x):
return x*2
>>> list(map(two_times, [1,2,3,4]))
two_times라는 함수의 리턴값을 x*2로 만들어준다.
map함수를 이용해서 (함수, 리스트요소)를 넣어주면
자동으로 two_times의 매개변수 x에 리스트 요소들이 들어가 계산을 한다.
더 간단히 만들 수 있다.
예상대로 lambda를 사용하면 단, 한 줄의 코드로 요약이 가능하다.
>>> list(map(lambda a: a*2, [1,2,3,4]))
[2, 4, 6, 8]
max
max(iterable)는 인수로 반복가능한 자료형을 받아서 최댓값을 리턴한다.
>>> max([2, 4, 6, 8])
8
>>> max("python")
'y'
min
max(iterable)는 인수로 반복가능한 자료형을 받아서 최솟값을 리턴한다.
>>> min([2, 4, 6, 8])
2
>>> min("python")
'h'
oct
oct(x)는 정수 형태의 숫자를 8진수 문자열로 바꾸어 리턴한다.
>>> oct(12)
'0o14'
>>> oct(12345)
'0o30071'
open
open(filename, [mode])은 파일이름과 읽는 방법을 입력받아 파일 객체를 돌려주는 함수이다.
읽기 방법(mode)를 생략하면 기본값인 읽기 전용모드 (r)로
파일 객체를 만든다.
f = open("binary_file", "rb")
"binary_file"이라는 파일을 읽기모드해라.
f = open("read_mode.txt", "r")
f = open("read_mode.txt")
앞서 말했듯이 mode를 생략하면 기본값인 r을 갖게 되기 때문에
위 두개의 코드는 똑같다.
파일 열기 모드 | 설명 |
r | 읽기 모드 - 파일을 읽기만 할 때 사용 |
w | 쓰기 모드 - 파일에 내용을 쓸 때 사용 |
a | 추가 모드 - 파일의 마지막에 새로운 내용을 추가할 때 사용 |
다음 포스팅에서 나머지 파이썬 내장함수에 대해서 설명하도록 하겠다..!
너무 많아ㅠ

이 포스팅은 '점프 투 파이썬' 책을 참고하여 포스팅하였습니다.