공부/파이썬 2021. 12. 19. 17:11

20211219 - 점프투파이썬 05-5

05-5 내장함수

내용이 많아서 끊어 씁니다. abs, all, any, char, dir, divmod, eval, filter, hex, id

 

abs(x) 

x의 절대값을 돌려주는 함수

 

all(x)

x 가 반복가능한 자료형인경우 x내의 모든 내용이 참인지 검사해서 리턴해준다.

x = [1,2,3,4,5] -> true,  x = ["aa","vv",21] -> true

x = [1,2,3,0,4] -> false,  x = ["aa","bb",""] -> false

x = 10 ->에러

 

any(x)

all과 비슷하지만 모든내용중에 하나라도 true가 있다면 true 리턴

 

char(x)

x 아스키 코드값을 입력받아 코드값에 해당하는 문자를 출력한다

 

dir(x)

객체가 자체적으로 가지고 있는 변수나 함수를 보여준다.... help냐...

아마 사용자 정의 개체에 해당 함수나 변수가 있는지 유효성 체크할때 쓰면 될듯

dir([1,2,3]) 리스트에 관련된 객체함수 이름을 리스트로 리턴

dir({1,2,3}) 딕셔너리에 관련된 객체함수 이름을 리스트로 리턴...

 

divmod(a,b)

a를 b로 나눈 몫과 나머지를 튜플형태로 리턴,

아무래도 두값을 동시에 필요로 하는경우가 많은가봄

divmod( 7,3 ) -> (2,1) 

 

enumerate

순서가 있는 자료형을 입력받아 기존 자료에 순서값을 넣어서 enumerate 개채로 리턴

그러니까 for문에서 숫자 카운트해서 사용하는게 귀찮을때 쓰는구만
test = enumerate(["dd","aa", "cc"])
for ii,name2 in  test:
    print( ii, name2 )
0 dd

1 aa

2 cc 

 

eval(x)

파이썬에서 실행가능한 문자열 "1+2" "divmod(10,3)" 을 받아 실행해준다...

이거 인터프리터모드로 할때랑 파일로 할때랑 동작이 약간 다르다?

eval( 'print( divmod(10,3))' ) -> (3,1)

접근할수 있는 영역이면 변수도 사용 가능

test = ["dd","aa", "cc"]

eval('print(test)') -> ["dd","aa", "cc"]

보통입력받은 문자열가지고 할때 쓴다?

 

filter

반복가능한 자료형과 해당 자료형을 판단할 함수명을 입력받아 반복가능한 자료를 걸러준다.

말로 풀어쓰니까 복잡......

def pos_func(x) : 

    return x > 0

print( list( filter( pos_func, [10, 2, -10, 4, -6, -9. -1000, 40] ) ) ) -> [10,2,4,40]

 

pos_func 의 기준대로 0보다 큰 값만 걸러서 되돌려주는 함수가 된다.

list 같은 반복 가능한 자료형으로 바꿔주지 않으면 filter 개채값만 출력되니까 list같은걸로 변환해서 받자

 

hex(x)

정수값을 16진수로 변경해서 출력

 

id(x)

객체를 입력받아서 고유주소를 반환한다.

포인터 같은거 생각하면 되는데 이걸로 상수나 변수 찍어보면 꽤 재미있다

 

--------------------------------------------------------