다음 표는 산술/논리 연산에 관련된 내장 함수들이다.


[표 1] 산술/논리 연산에 관련된 내장 함수들

hex(n)

oct(n)

bin(n)

정수 n의 16진수 값을 구해서 ‘문자열’로 반환한다.

정수 n의 8진수 값을 구해서 ‘문자열’로 반환한다.

정수 n의 2진수 값을 구해서 ‘문자열’로 반환한다.

abs(n)

절대값을 구한다. 복소수의 경우 크기를 구한다.

pow(x,y[,z])

거듭제곱을 구한다. pow(x,y)은 x**y 와 같다.

divmod(a,b)

a를 b로 나눈 (몫, 나머지)를 구한다. 튜플 반환.

all(iterable)

any(iterable)

iterable 의 모든 요소가 True 일 경우 True를 반환.

iterable 의 하나 이상의  요소가 True 일 경우 True를 반환.

max(iterable)

max(arg1, arg2, …)

최대값을 구한다.

min(iterable)

min(arg1, arg2, …)

최소값을 구한다.

round()

반올림을 한다.


hex(), oct(), bin() 함수는 각각 ‘0x’, ‘0o’, ‘0b’ 로 시작하는 ‘문자열’로 결과를 반한한다. 이 문자열을 파이썬 값으로 변환하려면 eval()함수를 이용하면 된다.



Posted by 살레시오
,

 다음은 열거형(sequence)의 정보를 얻는 내장 함수들이다.


[표 1] 열거형의 정보를 얻는 내장 함수들

함수명

기능

len(seq)

시퀀스형을 받아서 그 길이를 반환한다.

iter(obj [,sentinel] )

next(iterator)

객체의 이터레이터(iterator)를 반환한다.

이터레이터의 현재 요소를 반환하고 포인터를 하나 넘긴다.

enumerate(iterable, start=0)

이터러블에서 enumerate 형을 반환한다.

sorted(iterable[,key][,reverse])

정렬된 *리스트*를 반환

reversed(seq)

역순으로 된 *iterator*를 반환한다.

filter(func, iterable)

iterable의 각 요소 중 func()의 반환값이 참인 것만을 묶어서 이터레이터로 반환.

map(func, iterable)

iterable의 각 요소를 func()의 반환값으로 매핑해서  이터레이터로 반환.


iter()은 seq형으로부터 이터레이터를 반환하는 함수이다. next()는 이터레이터의 현재 요소를 반환하고 이터레이터의 포인터를 그 다음 요소로 넘기는 함수이다.


enumerate()은 시퀀스로부터 enumarate형을 반환한다. 이것은 인덱스와 해당 값의 튜플을 반환하는 이터레이터를 가진다.


>>> seasons = ['spring','summer','fall','winter']
>>> list(enumerate(seasons))
[(0, 'spring'), (1, 'summer'), (2, 'fall'), (3, 'winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'spring'), (2, 'summer'), (3, 'fall'), (4, 'winter')]


보통은 for 문과 같이 사용되어서 반복문 안에서 이터러블의 요소값 뿐만 아니라 그 인덱스 정보도 필요할 경우 편리하게 사용할 수 있다.


>>> seasons=['spring','summer','fall','winter']
>>> for i,v in enumerate(seasons):
 …:    print("%s:%s"%(i,v))
  
0:spring
1:summer
2:fall
3:winter


filter(func, iterable)는 함수와 이터러블을 입력으로 받아서 이터러블의 요소가 하나씩 함수에 인수로 전달될 때, 참을 반환시키는 것만을 따로 모아서 이터레이터로 반환하는 함수이다.


 다음 예를 살펴보자.


def positive(l):
   result = []
   for i in l:
       if i > 0:
     result.append(i)
   return result

>>> print(positive([1,-3,2,0,-5,6]))
[1, 2, 6]


위의 positive함수는 리스트를 입력값으로 받아서 각각의 요소를 판별해 양수값만 따로 리스트에 모아 그 결과값을 돌려주는 함수이다.


 filter()함수를 이용하면 아래와 같이 똑같은 일을 동일하게 구현할 수 있다.


>>> def positive(x):
…      return x > 0
>>> print(list(filter(positive, [1,-3,2,0,-5,6])))
[1, 2, 6]


filter() 함수는 첫 번째 인수로 함수명을, 두 번째 인수로는 그 함수에 차례로 들어갈 이터러블(리스트, 터플, 문자열 등)을 받는다. filter 함수는 두 번째 인수인 이터러블의 각 요소들이 함수에 들어갔을 때 리턴값이 참인 것만을 이터레이터로 묶어서 돌려준다. 위의 예에서는 1, 2, 6 만이 양수로 x > 0 이라는 문장이 참이 되므로 [1, 2, 6]이라는 결과 값을 돌려주게 된다.


익명함수(lambda)를 쓰면 더욱 간편하게 쓸 수 있다.


>>> list(filter(lambda x: x > 0, [1,-3,2,0,-5,6]))
[1, 2, 6]


 filter()와 유사한 map() 함수가 있다. 이것은 함수와 이터러블을 입력으로 받아서 각각의 요소가 함수의 입력으로 들어간 다음 나오는 출력값을 묶어서 이터레이터로 돌려주는 함수이다. 만약 어떠 리스트의 모든 요소의 제곱값을 갖는 새로운 리스트를 만들고 싶다면 다음과 같이 하면 된다.


>>> a = [2, 3, 4, 7, 8, 10]
>>> a2 = list(map(lambda x:x**2, a))
[4,9,16,49,64,100]


파이썬 2.7은 filter()와 map()의 결과가 리스트이므로 위 예에서 list함수를 이용하여 리스트로 변환하지 않아도 된다. 파이썬 3.x에서는 이들 함수의 반환값이 리스트가 아닌 반복형(iterable)이므로 이것을 리스트로 만들기 위해서는 list()함수를 명시적으로 사용해야 한다.



Posted by 살레시오
,

 다음은 기본 자료형의 생성과 변환에 관련된 내장 함수들이다.


[표 2] 기본 자료형의 생성과 변환에 관련된 내장 함수들

함수명

기능

object()

새로운 object (모든 객체의 base)를 생성한다.

bool(obj)

객체의 진리값을 반환한다.

int(obj)

문자열 형태의 숫자나 실수를 정수로 변환한다.

float(obj)

문자열 형태의 숫자나 정수를 실수로 변환한다.

complex(re [, img])

문자열이나 주어진 숫자로 복소수를 생성한다.

str(obj)

객체를 출력할 수 있는 문자열로 반환한다.

list(seq)

시퀀스형을 받아서 같은 순서의 리스트로 만들어 반환한다,

tuple(seq)

시퀀스형을 받아서 같은 순서의 튜플로 만들어 반환한다,

range(stop)

range(start,stop[,step])

0부터 stop-1 까지의 sequence 반환

start부터 stop-1 까지 (step은 간격) sequence 반환

set(seq)

시퀀스형을 받아서 같은 순서의 집합(set)으로 만들어 반환한다,

frozenlset()


bytes()


bytearray()


memoryview()


dict(**kwarg)

시퀀스형을 받아서 딕셔너리로 만들어 반환한다,

(음영진 부분은 seq 형이다.)


다음은 기본 자료형의 정보를 얻는 내장 함수들이다.


[표 2] 기본 자료형의 정보를 얻는 내장 함수들

함수명

기능

type(obj)

객체의 형을 반환한다.

dir(obj)

객체가 가진 함수와 변수들을 리스트 형태로 반환한다.

repr(obj)

ascii(obj)

evla()함수로 다시 객체를 복원할 수 있는 문자열 생성

repr()과 유사하나 non-ascii 문자는 escape한다.(?)

id(obj)

객체의 고유번호(int형)을 반환한다.

hash(obj)

객체의 해시값(int형)을 반환. (같은 값이면 해시도 같다.)

chr(num)

ord(str)

ASCII 값을 문자로 반환

한 문자의 ASCII 값을 반환

isinstance(obj, className)

객체가 클래스의 인스턴스인지를 판단한다.

issubclass(class, classinfo)

class가 classinfo 의  서브클래스일때 True 반환

classmethod()


staticmethod()


callable(obj)

obj가 호출 가능한 객체면 True반환 (ver 3.2에서 다시 도입)

getattr(obj, name)

setattr(obj,name,val)

delattr(obj,name)

hasattr(obj,nema)

obj의 attrubue (name) 를 얻는다.

obj의 attrubue (name) 를 설정한다.

obj의 attrubue (name) 를 삭제한다.



Posted by 살레시오
,

 파이썬의 내장 함수는 import 하지 않고 즉시 사용 가능한 함수들이다. 내장 함수명은 일종의 키워드로 간주하여야 하며 사용자의 식별자로 사용하는 것은 피하여야 한다.


 이하 표에서 대괄호 [ ..]로 표시된 것은 ‘생략 가능함’을 나타내는 것이다.


[표 1] 기본 입출력과 관련된 파이썬 내장 함수들

함수명

기능

print(x)

객체를 문자열로 표시한다.

input([prompt])

사용자 입력을 문자열로 반환한다.

help([x])

x에 대한 도움말을 출력한다.

globals()

전역 변수의 리스트를 반환한다.

locals() 혹은 vars()

vars(obj)

지역 변수의 리스트를 반환한다.

__dict__ 어트리뷰트를 반환한다. (객체의 내부 변수가 저장된 딕셔너리)

del(x) 혹은 del x

객체를 변수 공간에서 삭제한다.

eval(expr)

값을 구한다.

exec(obj)

파이썬 명령을 실행시킨다.

open(filename[,mode]))

파일을 연다


eval()함수는 파이썬 표현식을 실행해서 결과값을 얻는 함수이다.


>>> x = 1
>>> eval('x+1')
2


반면 exex()함수는 파이썬 프로그램 조각을 입력 받아서 파싱(parsing)한 후 실행시키는 함수이다. 파이썬 코드를 문자열로 넘겨줄 수도 있고 파일 객체를 넘겨줄 수도 있다.


>> a=10
>>> exec('b=a+10')
>>> b
20


open()함수는 존재하는 파일을 열거나 새로 파일을 생성하여 file객체를 반환해 주는 함수이다.


>>> f = open(‘test.txt’) # 존재하는 test.txt 파일을 연다.


위와 같이 mode 인자가 생략되면 읽기 모드인 ‘r’ 로 기본 설정된다. 모드는 다음과 같은 것이 있다.


[표 2] 내장함수 open()의 mode 옵션

mode

기능

‘r’

‘w’

‘x’

‘a’

읽기 모드로 연다 (기본값)

쓰기 모드로 연다. 기존 내용이 있다면 삭제됨

독점 모드로 파일을 생성한다. 기존 파일이 있다면 오류 발생

쓰기 모드로 연다. 기존 내용에 이어서 첨가하는 모드이다.

‘b’

‘t’

바이너리 모드(파일 내용이 bytes 객체로 반환됨)

텍스트모드(기본값, 파일 내용이 str 객체로 반환됨)

‘+’

내용을 갱신하기 위해서 파일을 연다.(읽기/쓰기)



Posted by 살레시오
,