Programming/Python

[Python] 파이썬 내장함수 모음 2탄 hex / id / input / int / isinstance / len / list / map / max / min / oct / open

EunjiBest 2022. 3. 9. 12:37

[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 추가 모드 - 파일의 마지막에 새로운 내용을 추가할 때 사용

 

 

 

다음 포스팅에서 나머지 파이썬 내장함수에 대해서 설명하도록 하겠다..!

너무 많아ㅠ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

반응형