python 기초 기교

12311 단어

python 내장 함수


모든 내장 함수 보기
dir(__builtin__)
이상 및 경고: 모두 BaseException 하위 클래스입니다.
ArithmeticError,AssertionError,AttributeError,Exception,BaseException,BufferError,BytesWarning,DeprecationWarning,EOFError,EnvironmentError,FloatingPointError,FutureWarning
IOError,ImportError,ImportWarning,IndentationError,IndexError,KeyError,LookupError,MemoryError,NameError,NotImplementedError,OSError
OverflowError,PendingDeprecationWarning,ReferenceError,RuntimeError,RuntimeWarning,StandardError,SyntaxError
SyntaxWarning,SystemError,TabError,TypeError,GeneratorExit,KeyboardInterrupt,StopIteration,SystemExit
UnboundLocalError,UnicodeDecodeError,UnicodeEncodeError,UnicodeError,UnicodeTranslateError,UnicodeWarning,UserWarning,ValueError,Warning,ZeroDivisionError
abs: 절대값 가져오기
In [162]: abs(-1)
Out[162]: 1

all:매개 변수list 모두 true 반환
In [163]: all([1,2,3])
Out[163]: True
In [164]: all([1,2,0])
Out[164]: False

any: 매개 변수 목록이 true로 되돌아옵니다.
In [165]: any([1, 0, False])
Out[165]: True
In [166]: any([0, False])
Out[166]: False

basestring: 문자열 부류strunicode가 어떤 대상이 문자열인지 확인할 때 isinstance를 참고합니다
callable: 어떤 대상이 함수로 호출될 수 있는지 판단
In [172]: callable(True)
Out[172]: False
In [173]: callable(abs)
Out[173]: True

classmethod: 장식기는 클래스 이름을 첫 번째 매개 변수로 은밀하게 전달합니다
class Hello(object):
    @classmethod
    def print_hello(cls):
        print "Hello World"


In [175]: Hello.print_hello()
Out[175]: Hello World

cmp: 비교 함수
In [176]: cmp(1,1)
Out[176]: 0
In [177]: cmp(1,2)
Out[177]: -1
In [178]: cmp(2,1)
Out[178]: 1

delattr: 속성 삭제
dir: 객체의 등록 정보 보기 방법
divmod: 나눗셈 값과 여수
In [179]: divmod(5,2)
Out[179]: (2, 1)

eval: 문자열을 코드로 실행하면 위험합니다
In [197]: eval('2+3')
Out[197]: 5
In [198]: exec 'a=1'
In [199]: a
Out[199]: 1

file:open
filter: sequence의 item에 대해 순서대로 function (item) 을 실행하고, 실행 결과가 True item으로 구성된 List/String/Tuple
In [202]: filter(lambda x: x != 2, [1, 2, 3])
Out[202]: [1, 3]

getattr: 호출 대상의 속성
hasattr: 대상에 어떤 속성이 있는지 판단
hash: 해시 함수
help: 대상의 도움말 정보 보기
id: 객체의 메모리 주소 보기
isinstance: 비교 대상 유형 동일
In [206]: isinstance('a', unicode)
Out[206]: False
In [207]: isinstance('a', str)
Out[207]: True
In [208]: isinstance('a', basestring)
Out[208]: True
In [209]: isinstance(u'a', basestring)
Out[209]: True

map: sequence의 item에 대해 순서대로 function (item) 을 실행하고, 실행 결과를 보고 List 반환을 구성합니다
In [210]: map(lambda x: x*2, [1,2,3])
Out[210]: [2, 4, 6]

max: 최대값 가져오기
In [211]: max([5,2,3])
Out[211]: 5

min: 최소값 가져오기
In [212]: min([5,2,3])
Out[212]: 2

object: 기본 클래스
open: 로컬 파일 열기
pow: 성형 N차 계산
In [213]: pow(3,2)
Out[213]: 9

range: 질서정연한 성형 목록 얻기
reduce: sequence의 item 순서를 function으로 교체합니다. starting_value, 초기 값으로 호출 가능
In [215]: reduce(lambda x,y: x * y, [2,3,4])
Out[215]: 24

reload: 가져온 가방 다시 불러오기
repr: 어떤 대상을 문자열로 표시
reversed: 순서 바꾸기
In [220]: list(reversed([1,3,2]))
Out[220]: [2, 3, 1]

round: 소수점 뒷자리 찾기
In [224]: round(2.1234, 3)
Out[224]: 2.123

집합
In [225]: set([1,2,1,3])
Out[225]: {1, 2, 3}
In [226]: list(set([1,2,1,3]))
Out[226]: [1, 2, 3]

setattr: 어떤 대상의 속성에 값을 부여합니다
sorted: 정렬
In [234]: sorted([1,4,3,])
Out[234]: [1, 3, 4]

staticmethod: 정적 장식기 전달 클래스 이름 참조classmethod
sum: 화합 추구
In [236]: sum([3,4,5,6])
Out[236]: 18

슈퍼: 상위 클래스 호출
xrange:range와 구별하여 호출할 때 대응하는 값을 생성합니다
zip: 두 개의 데이터를 합쳐서 보통 사전으로 사용합니다
In [238]: zip([1,2], [3,4], [5,6])
Out[238]: [(1, 3, 5), (2, 4, 6)]
In [239]: zip(['a','b'], [3,4])
Out[239]: [('a', 3), ('b', 4)]
In [240]: dict(zip(['a','b'], [3,4]))
Out[240]: {'a': 3, 'b': 4}

execfile: 실행 파일의python 코드
iter: 교체 대상 만들기
다음은 자주 쓰지 않거나 한 눈에 알아볼 수 있는 상대를 위해 시간이 있는 사람이 정리해주세요.
이것은 인터넷에서 찾은 링크이다http://jianfeihit.iteye.com/blog/1835272참고로 제공하다
apply: 함수의 매개 변수가 목록에 존재하거나 그룹에 apple (tset, (1,2)) 이test (1,2) 와 같을 때
Ellipsis: 생략해도 소용없어요.
False
None
NotImplemented: 비현실적인 함수는 reutrn NotImplemented 변수를 사용하여 성형 문자열과 비교할 수 있습니다.
True
tuple
type
unicode
vars
str
슬라이스: 슬라이스
raw_input
print
property
oct
next
bin: 성형 2진
bool
buffer
bytearray
bytes
issubclass
len
license
list
locals: 국역 변수
long
chr:0-255 정수 반환에 대응하는 문자
unichr: 같은 chr에서 unicode 형식으로 되돌아오기
ord:chr 배합 함수
coerce: 두 개의 매개 변수를 같은 유형의 작은 대상으로 큰 대상으로 전환합니다. 예를 들어 성형 부동점 수입니다.
compile:
complex: 소스를 코드 또는 AST 객체로 컴파일합니다.코드 대상은 exec 문장을 통해 실행하거나 eval () 을 통해 값을 구할 수 있습니다.
input
int
intern
dict
enumerate
float
format
frozenset
globals: 전역 변수
memoryview
hex

python 기교


1. 문자열 포맷


python의 모든 형식을 문자열로 바꿀 수 있기 때문에%s만 사용할 수 있습니다
형식
묘사
%%
백분율 표시
%c
문자 및 ASCII 코드
%s
문자열
%d
기호 정수 있음(10진수)
%u
기호 정수 없음(10진수)
%o
기호 정수 없음(8진수)
%x
기호 정수 없음(16진수)
%X
기호 정수 없음 (16진수 대문자)
%e
부동 소수점 숫자(과학 계수법)
%E
부동 소수점 숫자(e 대신 E 사용)
%f
부동 소수점 숫자(소수 점 기호 사용)
%g
부동 소수점 숫자(값 크기에 따라%e 또는%f)
%G
부동 소수점 숫자(%g 유사)
%p
포인터 (16진수로 출력된 값의 메모리 주소)
%n
출력 문자의 수를 매개 변수 목록의 다음 변수에 저장합니다
코드 예
In [244]: "%s:%s" % ('name', 'age', )
Out[244]: 'name:age'

In [245]: "%(name)s: %(age)s" % {'name': 'xiaoming', 'age': 18}
Out[245]: 'xiaoming: 18'

2.ipython과 인터럽트


ipython은 인터랙티브 해석기입니다
인터럽트 방식
from IPython import embed
embed()

import pdb
pdb.set_trace()

3.python 슬라이스

In [255]: st
Out[255]: 'abcdefg'
In [256]: st[:2]
Out[256]: 'ab'
In [257]: st[::2]
Out[257]: 'aceg'
In [258]: li
Out[258]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [259]: li[:5]
Out[259]: [0, 1, 2, 3, 4]
In [260]: li[:5:3]
Out[260]: [0, 3]
In [261]: li[::-1]
Out[261]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
In [262]: li[::-2]
Out[262]: [9, 7, 5, 3, 1]

4. 목록 밀어내기

In [264]: li
Out[264]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [265]: [x*3 for x in li]
Out[265]: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

In [267]: [x*3 for x in li if x%2 == 0]
Out[267]: [0, 6, 12, 18, 24]

5. 정규 표현식


자세한 내용은 링크를 참조하십시오.

6.3원 표현식

In [269]: 1 if True else 2
Out[269]: 1

In [270]: 1 if False else 2
Out[270]: 2

7.lambda 익명 함수

In [271]: lambda x,y : x + y
Out[271]: <function __main__.<lambda>>
In [272]: def test(x,y):
   .....:     return x + y
   .....: 
In [273]: test
Out[273]: <function __main__.test>
In [275]: (lambda x,y : x + y)(1,2)
Out[275]: 3
In [276]: test(1,2)
Out[276]: 3

8. 변수와 사전 키

  • 빈 유형 None
  • 부울 유형 부울
  • 정형 Int
  • 부동점형 플로트
  • 문자열 String
  • 원조 Tuple
  • 목록 목록
  • 사전 Dict
  • 집합 세트

  • 그 중에서 7, 8, 9는 값이 변할 수 있기 때문에 사전 형식의 키로 사용할 수 없다

    9. 변수 부울 유형의 판단

    In [284]: bool(1),bool(0),bool(-1)
    Out[284]: (True, False, True)
    In [285]: bool(1.1),bool(0.0),bool(-1.1)
    Out[285]: (True, False, True)
    In [286]: bool(None)
    Out[286]: False
    In [287]: bool(''),bool('a')
    Out[287]: (False, True)
    In [288]: bool(()),bool((1, ))
    Out[288]: (False, True)
    In [289]: bool([]),bool([1, ])
    Out[289]: (False, True)
    In [290]: bool({}),bool({'name': 'xiaoming'})
    Out[290]: (False, True)
    In [291]: bool(set([])),bool(set([1]))
    Out[291]: (False, True)

    python 클래스 내장 함수 상세 설명


    함수
    설명하다
    __init__(self, *args, **kwargs)
    객체 초기화 시 실행
    __del__(self)
    객체 삭제 실행
    __new__(self, *args, *kwargs)
    실례의 생성 작업은 실례를 되돌려야 합니다.object 단일 모드 (같은 클래스) 를 계승해야 합니다.
    __str__(self)
    문자열 변환 또는 print 실행 호출
    __getitem__(self, key)
    색인을 통해 대응하는 값
    __setitem__(self, key, value)
    인덱스와 대응하는 값 증가
    __len__(self)
    len () 호출
    __cmp__(src, dst)
    src와 dst 비교
    __gt__(self,other)
    보다 크다
    __lt__(self,other)
    보다 작다
    __ge__(self,other)
    보다 크면 같음
    __le__(self,other)
    보다 작다
    __eq__(self,other)
    같다
    __call__(self, **args)
    대상이 함수로 호출되다
    __iter__(self)
    교체 대상 호출
    __getattr__(self, key)
    속성 가져오기
    __setattr__(self, key, value)
    속성 추가
    __delattr__(self, key)
    속성 삭제
    __getattribute__
    유사__getattr__
    코드 인스턴스
    # -*- coding: utf-8 -*-
    class classGetSet(object):
        kk = {}
        def __init__(self):
            print '__init__'
        def __getitem__(self, key):
            print '__getitem__'
            return self.kk[key]
        def __setitem__(self, key, value):
            print '__setitem__'
            self.kk[key] = value
        def __del__(self):
            print '__del__'
        def __str__(self):
            print '__str__'
            return '__str__'
        def __len__(self):
            print '__len__'
            return len(self.kk.keys())
        def __cmp__(src, src2):
            return True
        def __iter__(self):
            print "__iter__ called"
            for x in range(10):
                yield x
    
    if __name__ == '__main__':
        #    __init__
        cla = classGetSet()
        #   __setitem__
        cla[0] = 'key1'
        cla['second'] = 'key2'
        #   __getitem__
        print cla[0]
        #   __iter__
        for c in cla:
            print c
        #   __str__
        print str(cla)
        #   __len__
        print len(cla)
        #   __cmp__
        print 2 > cla
        #       __del__
        del cla
    
    

    좋은 웹페이지 즐겨찾기