본문 바로가기
반응형

Programming/Python16

[python]보안프로그래밍3 기말고사 정리(5) 클래스 메소드 ● 인스턴스 객체와 무관하게 클래스 이름 공간에 존재하는 메소드로서 클래스 이름을 이용하여 호출하며 첫 인수로 클래스 객체를 자동으로 받는 메소드 ● 장식자 @classmethod 사용 ● 상속받은 서브 클래스를 통해 호출하면, 첫 인수에는 서브 클래스 객체가 자동으로 할당됨 class C: @classmethod def spam(cls, y): print cls,'->', y class D(C): pass d = D() print d.spam(3) // 결과값 __main__.D -> 3None__main__.D -> 3None ★ None이 나오는 이유? 파이썬은 함수에 return문이 없다 할지라도 실제로 None 객체가 전달이 된다. None객체는 파이썬 내장 객체로서 아무 값도 없.. 2017. 6. 14.
[python] 보안프로그래밍3 기말고사 정리(4) 이름공간 ● 이름 공간 또는 스코프 : 이름이 존재하는 장소 파이썬은 실행 시간에 각 이름들을 적절한 이름 공간에 넣어 관리함. ● 이름 공간의 종류 ◎ 지역(Local) : 각 함수 내부 ◎ 전역(Global) : 모듈(파일) 내부 ◎ 내장(Built-in) : 파이썬 언어 자체에서 정의한 영역 ● 변수가 정의되는 위치에 의해 변수의 스코프가 정해짐 ◎ 파이썬에서 변수의 정의 - 변수가 l-value로 사용될 때 ● 변수가 r-value로 사용될 때 해당 변수의 값을 찾는 순서 규칙 ◎ L --> G --> B ● a = 1에서 a라고 하는 것이 =의 왼쪽에 존재 시 a는 l-value ● b = a를 하게 되면 b는 l-value, a는 r-value # g, h는 전역 변수 g = 10 h = 5 .. 2017. 6. 14.
[python] 보안프로그래밍3 기말고사 정리(3) 함수 인수값 전달방법 def f4(b): b[1] = 10 a = [4,5,6] f4(a) print a // 결과값[4, 10, 6] def f5(b): b['a'] = 10 a = {'a':1, 'b':2} f5(a) print a // 결과값 {'a' : 10, 'b' : 2} 함수 인수 처리 ● 기본 인수 값 : 함수를 호출할 때 인수를 넘겨주지 않아도 인수가 기본적으로 가지는 값 def incr(a, step = 1): return a + step b = 1 b = incr(b) print b b = incr(b, 10) print b // 결과값212 --> 에러가 발생하는 이유 : 기본인자가 없으면 error가 발생한다. 왜냐하면 정의한 함수의 인자가 2개이기 때문이다. ※ 문제 이 코드에서.. 2017. 6. 14.
[python] 보안프로그래밍3 기말고사 정리(2) 기존 내 임의 위치로 접근 name = 't.txt' f = open(name, 'w+') # 읽고 쓰기로 오픈 s = '0123456789abcdef' f.write(s) f.seek(5) # 시작부터 5바이트 포인터 이동 print f.tell() # 현재 위치 print f.read(1) # 1문자 읽기 print f.tell() print ● seek(n) : 파일의 가장 첫번째 위치에서 n번째 바이트로 포인터 이동 ● tell() : 파일 내 현재 포인터 위치를 반환 파일과 디렉토리 다루기 import os print os.listdir('.') # 현재 디렉토리의 파일 목록 얻기 print print os.listdir('../') # 현재 디렉토리의 부모 디렉토리의 파일 목록 얻기 # 파일 .. 2017. 6. 14.
[python] 보안프로그래밍3 기말고사 정리(1) 튜플 연산 t = (1,2,3) print t * 2 print t + ('PyKUG', 'users') print t print print t[0], t[1:3] print len(t) print 1 in t 집합 자료형 메소드 ● set 내장 함수를 사용한 집합 자료 생성. ● 변경 가능한 객체이다. ● 각 원소간에 순서는 없다. ● 각 원소는 중복될 수 없다. ● 시퀀스 자료형이 아니다. B = set([4,5,6,10,20,30]) C = set([10,20,30]) print C.issubset(B) # C가 B의 부분집합? print C = C print # 결과값 True True True True ● set은 변경 가능한 자료 구조 객체 ● 다음 메소드들은 set을 변경하는 집합 자료 구조.. 2017. 6. 13.
[python] 보안프로그래밍3 중간고사 정리 (5) 리스트 메소드 >> append(), insert()s = [1,2,3] s.append(5) # 리스트 맨 마지막에 정수 값 5추가 print s s.insert(3,4) # 3 인덱스 위치에 정수 4 추가 print s // 결과값[1, 2, 3, 5] [1, 2, 3, 4, 5] >> index(), count()s = [1,2,3,4,5] print s.index(3) # 값 3의 인덱스 반환 print s.count(2) # 값 2의 개수 반환 s = [1,2,2,2,2,2,2,2,2,3,4,5] print s.count(2) // 결과값2 1 8 >> reverse(), sort()s = [1,2,-10,-7,100] s.reverse() print s s.sort() print s // 결과.. 2017. 4. 25.
반응형