본문 바로가기

Always Awake/python 기본 정리(19.12.23~20.01.12)7

20.01.12 기록 1. 클래스 속성과 인스턴스 속성 클래스 속성 : 클래스 자체에 바로 선언된 속성 인스턴스 속성 : 각 인스턴스별로 따로 가지고 있는 속성 클래스 속성은 한 클래스에서 나온 모든 인스턴스가 공유하고 있다. 즉, class Person: feeling = [] def got_feeling(self, feel): Person.feeling.append(feel) #self.feeling.append(feel)와 같은 코드지만, 클래스 속성임을 조금 더 명시적으로 나타낸 것 alphaca = Person() alphaca.got_feeling(‘nice’) Beenzino = Person() Beenzino.got_feeling(‘good’) print(alphaca.feeling) #속성,메서드 이름을 찾는.. 2020. 1. 13.
20.01.09 정리 1. 리스트로 스택과 큐 만들기 스택 : 후입선출구조 (선입후출구조) 큐 : 선입선출구조 append()와 pop()이 리스트 끝부분에 요소를 추가시키고 삭제하므로 이를 통해 간단한 스택구조를 만들수 있음. 큐의 경우는 좀더 효율적인 사용을 위해서 deque(double ended queue) 자료형을 제공한다. 덱은 양쪽 끝에서 추가/삭제가 가능한 구조. 사용 방법은 from collections import deque로… deque 자료형의 경우는 appendleft() 메서드와 popleft() 메서드를 제공한다. 따라서 append와 popleft의 조합, appendleft와 pop의 조합을 이용하여 양쪽방향으로 큐를 활용할 수 있다. 2. sort 함수와 sorted 함수의 차이 sort()와.. 2020. 1. 9.
20.01.06 정리 1. slice 객체를 활용하여 여러 squence객체를 슬라이스하기 slice 객체는 시작, 끝, 인덱스 증가폭을 가지는 객체로, 잘라내고 싶은 부분을 지정해두는 것과 비슷한 느낌으로 사용된다. slice 객체를 지정해두면, 해당 객체의 정보를 이용하여 다른 sequence의 내용물을 슬라이스할 수 있다. 예를들어 List = [1,2,3,4,5,6,7,8,9,10] Tuple = (1,2,3,4,5,6,7,8,9,10) Range = range(10) String = “Always Awake” 라는 각각 다른 종류의 네 시퀀스객체가 존재 한다고 하자. 이 각각의 시퀀스 객체에 대하여 인덱스 2번부터 8번까지중 한 칸씩 건너뛴(증가폭 2를 가진) 요소들만 슬라이스하여 새로운 객체들을 만들고싶다. 그러면.. 2020. 1. 7.
20.01.05 기록 1. ==연산자와 is 연산자의 차이 ==나 !=는 값 자체를 비교하고 Is, is not은 주어진 두 객체가 같은 객체인지를 비교한다. 즉 1 == 1.0에서 1은 1.0과 같은 크기의 값이므로 true이지만 1 is 1.0에서 1과 1.0은 각각 int, float 객체로 서로 다른 객체이므로 false이다. 2. 파이썬에서 객체 할당방식의 랜덤함 파이썬에서 변수가 있는 상태에서 다른 값을 할당하면 메모리 주소가 달라질 수 있다. 예를 들어 변수 a= -5라는 할당을 한 후 a와 -5의 id는 같지만, a=-6이라고 재 할당 할 경우 a는 -6과 다른 id값을 가질수도 있다. 확인해보면 재할당된 a의 경우 -6과도, -5와도 id가 다르다는 것을 알 수 있다. 찾아보니 파이썬에서 자주 사용되는 범위(.. 2020. 1. 6.
19.12.26 기록 1. 모듈 호출 방식의 차이 import 모듈명 from 모둘명 import 함수명 의 차이는 한가지. 전자는 모듈을 통째로 가져오므로 모듈명.함수명()을 해야 함수를 사용할 수 있지만 후자는 모듈 내의 해당 함수만 가져오겠다는 의미로 함수명()과 같이 바로 사용할 수 있다. 만약 모듈 내의 모든 함수를 가져와 쓰고싶지만 모듈명을 일일이 붙이기 귀찮다면 from 모듈명 import *를 사용하면 된다. (*를 사용하면 전체를 불러옴) 2. 모듈에서의 name변수(__name__) python의 name변수는 모듈명이 할당되는 내부변수이다. import를 통해 해당 모듈을 불러와 run하면 그때 name은 해당 모듈명이 되고, 만약 함수가 정의되어있는 파일을 run하면 name은 main이 된다. 3. r.. 2019. 12. 27.
19.12.25 기록 1. replace 함수의 객체조작 여부. 문자열의 replace함수는 객체를 직접 조작할 수 없다. 함수 호출 이후에 문자열은 대체된 상태로 저장되지 않는다. 만약 대체된 상태로 문자열을 대체하고 싶다면, 해당 문자열에 리턴값을 반환시켜 초기화해야한다. 예를 들어 a = "I need something to drink." a.replace("drink","eat") print(a) a = a.replace("drink","eat") print(a) 위와 같은 코드가 있을때 결과값은 I need something to drink. I need something to eat. 으로 나온다. 단순히 replace 함수를 호출하는 것만으로는 객체 a의 drink를 바꿀 수 없다. a에 대체된 객체 a.repl.. 2019. 12. 26.