공부/파이썬 2022. 1. 16. 17:36

20220116 점프투파이썬 05-5

05-5 내장함수

내용이 많아서 끊어 씁니다. 이게 끝(4) str, sum, tuple, type, zip

 

str(object) 객체를 문자열 형태로 반환

>>> str( 43 )

'43'

>>> str( 'test' )

'test'

>>> str( 'hi'.upper() )

'HI' 

보통 문자가 아닌 자료형을 문자로 변환할때 쓴다

 

sum(iterable) 입력받은 리스트나 튜플의 모든 요소의 합

>>> sum ( [1,2,3] )

6

>>> sum( (4,5,6) )

15

당연히 문자는 합할수 없어서 에러난다

 

tuple(iterable) 리스트랑 마찬가지 반복가능한 자료형을 입력받아서 튜플로 바꿔준다

>>> tuple( 'abc' )

('a', 'b', 'c' )

>>> tuple( [ 1, 3, 5, 6] )

( 1, 3, 5, 6 )

 

type(object ) 입력값의 자료형을 출력한다.

>>> type("abc")

<class 'str'>            문자열 자료형

>>>type([])

<class, 'list'>           리스트 자료형

>>>type( open("test", 'w') )

<class, '_io.TextIOWrapper'>       파일 자료형

 

zip(*iteravble)  특이하게도 같은 개수로 이루어진 자료형들을 묶어주는 함수

>>>list( zip( [1,2,3,4] , [5,6,7,8] ) )

[(1,4), (2,5), (3,7), (4,8)

>>>list( zip( (1,2), (3,4), (5,6), (7,8) ) )

[ (1,3,5,7) , (2,4,6,8) ]

>>>list( zip( "abc", "def" )

[ ('a','d'), ('b','e'), ('c','f') ]

공부/파이썬 2022. 1. 9. 18:41

20220109 점프투파이썬 05-5

05-5 내장함수

내용이 많아서 끊어 씁니다. (3) open, ord, pow, range, round, sorted

 

open(filename, [mode]) - 파일의 내용을 읽거나 파일에 내용을 쓰기을 위해선 파일을 열어야한다.

filename의 파일을 mode로 여는 함수

[mode] 생략하면 읽기 모드인 'r'로 파일을 연다

"w" - 쓰기모드로 파일 열기

"r" - 읽기모드로 파일열기

"a"-  추가모드로 파일열기

"b"- 바이너리 모드로 파일 열기

"b"는 단독으로 사용하지 않는다. 이거 없으면 아스키텍스트 모드로 연다

"rb" 바이너리로 읽기 모드

open("test_file", "ab") -> "test_file" 이란 이름의 파일을 바이너리-추가 모드로 연다

 

ord(c) 문자의 아스키 코드값을 돌려주는 함수

ord('a') -> 97

ord('0') -> 48

 

pow(x,y) x의 y제곱한 결괏값을 돌려주는 함수

pow( 3, 2 ) 3의 2제곱 9

pow( 2, 5 ) 2의 5제곱 32

 

range([start,] stop [,step] ) start부터 stop 까지 step 만큼씩 증가하는 숫자들을 반복가능한 객체로 만들어준다

>>> list( range(5) )  -> start 생략시 0, step 생략시 1 0에서 시작하고 5보다 작은 숫자의 리스트 반환

[0,1,2,3,4]

>>> list( range(3,7) ) ->두개일땐 step만 생략 3에서 시작하고 7보다 작은 숫자의 리스트 반환

[3,4,5,6] 

>>> list( range(1,10,2) )

[1,3,5,7,9]

>>> list( range( 0, -5, -1 ) )

[0, -1, -2, -3, -4 ]

 

round( number [, ndigits] ) 숫자를 입력받아 반올림 하는 함수

>>> round( 4.67 )

5

>>> round( 2.1224 )

2

>>> round( 5.7891, 2 ) 소숫점 2자리까지만 반올림 표시

5.79

 

sorted( iterable ) 입력값을 정렬한 후 결과를 리스트로 돌려준다. 리스트로 반환해준다는게 특징

>>> sorted( [ 3, 4, 1, 6 ] )

[1,3,4,6]

>>> sorted( "zero" )

[ 'e', 'o', 'r', 'z' ]

>>> sortde( ( 7,6,5,2) )

[ 2,5,6,7 ]

공부/파이썬 2021. 12. 26. 16:59

20211226 - 점프투파이썬 05-5

05-5 내장함수

내용이 많아서 끊어 씁니다. (2) input, int, isinstance, len, list, map, max, min, oct

 

input([prompt]) 사용자 입력을 받는 함수.

>>a = input() <- 사용자가 입력한 정보를 a에 저장

hi

>>a

'hi'

>>b = input("test : ") "test : "문자열출력하고 뒤에서 정보를 입력 받음

test : gggg

>> b

'gggg'

 

int( x ) int( x, radix )

문자열 형태나 소숫점이 있는 숫자를 정수형태로 돌려준다. 정수입력시 그냥 그대로

radix에 숫자 입력시 x에 입력된 radix 진수의 정수 문자열을 10진로 반환

int("43") -> 43

int(4.6) -> 4

int('100', 2) -> 4

int('100',3) -> 9

int('1a', 16) -> 26

 

isinstance( object, class )

object 에 인스턴스 , class 에 클래스이름을 받아서 object 가 class 의 인스턴스인지 판단해서

참이면 True 거짓이면 False

class TestClass : pass

a = TestClass()

b = 3

isinstance( a, TestClass ) -> True

isinstance( b, TestClass ) -> False

isinstance( b, int ) -> True

 

len( s )

입력값 s의 길이 (요소 전체의 개수)를 돌려주는 함수

len( "test-test" ) -> 9

len( [1,2,3,4] ) -> 4

 

list( s )

반복 가능한 입력값 s를 리스트로 만들어준다

list( "test-" ) -> [ 't', 'e', 's', 't', '-' ]

list( (1,2,3) ) -> [ 1, 2, 3 ]

 

map( func, iterable )

반복 가능한 입력값 iterable의 각 요소를 func함수 처리해준다

def two_func(x) : return x*2

a = list( map( two_func, [2,3,4,5] ) )

print( a )

-> [4, 6, 8, 10]

lambda 를 사용하면 함수선언도 줄일수 있다

a = list( map( lambda b: b*2 , [2,3,4,5] ) )

 

max( iterable )

반복 가능한 입력값 iterable 의 각 요소중에 최대값을 돌려준다

max( [1,2,3,4,5] ) -> 5

mas( 'abcde' ) -> e

 

min( iterable )

반복 가능한 입력값 iterable 의 각 요소중에 최소값을 돌려준다

max( [1,2,3,4,5] ) -> 1

mas( 'abcde' ) -> a

 

oct( x )

정수 x를 입력받아 8진수 문자열로 돌려준다. hex의 8진수 버젼

oct( 34 ) -> '0o42'

 

공부/파이썬 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)

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

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

 

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

공부/파이썬 2021. 11. 7. 15:38

20211107 점프 투 파이썬 - 05-4

05-4 예외처리

 

try :

    구문

except: 

    에러났을때 ㅋㅋ

except 에러코드 :

    특정 에러가 났을때 (ex: ZeroDivisionError 미리 지정된 에러코드)

except 에러코드 as 오류변수 :

    특정 에러가 났을때 에러코드를 오류변수로 받아서 처리

else :

    에러가 안났을 경우 처리.

finally : 

    에러가 나건 안났건 마지막에 실행할 녀석들 

    보통 파일변수 close 같은거.

 

## 에러났을 때 처리 구문에 pass 사용시 오류를 그냥 회피한다.

 

raise 에러코드

## 강제로 해당 에러를 발생

## 보통 클래스 상속에서 자식클래스가 함수등을 반드시 오버라이딩 해서 사용해야하는 경우 부모클래스쪽 함수에

## 에러 강제 발생을 만들어둔다.

 

에러 코드를 사용자 정의로 만들고 싶다면 파이썬 내장 클래스인 Exception 을 상속해서 만들면 된다.

 

class MyError(Execption):

    pass

 

def say_nick( nick ) :

    if nick == '바보' :

        raise MyError()

    print(nick)

 

try :

    say_nice( "ㅁㅁㅁ")

    say_nick("바보")

except MyError:

    print("에러났슈")

 

요러면  say_nick("바보") 이렇게 호출한 경우 MyError 라는 에러코드가 발생한다.

하지만 에러코드를 반환하는 정의를 안해놔서 아래와같이 할경우 출력되는건 없다.

 

execpt MyError as (e):

    print(e) 

 

이렇게 쓰고 싶다면

class MyError(Execption):

    def __str__(self):

        return "에러났구만유"

이렇게 정의 할것