파이썬 알고리즘 인터뷰의 첫 문제를 푸는 도중 여러가지 생소한 개념들이 등장했다.
def function(self, s:str) -> bool:
strs = []
for char in s:
char.append(char.lower())
while len(strs)<1:
if star.pop(0) != star.pop():
return False
return True
다음과 같은 식이 있을 때 다른 것들은 이해가 갔는데 self가 왜 사용됐는지 그리고 IDE에서 function을 어떻게 적용하는지, while만 했을때 return에서 오류가 나는지 알수없았다.
1. self 의 개념
self는 class를 사용할 때 현재 사용하는 class가 어떤것인지 알려주는 개념이라고 한다. class 라는 틀을 코드를 활용해서 불러오면 메모리 어딘가에 저장이 되는데 x1, x2, x3 과 같이 같은 함수내 Z를 이용해서 다른 것들을 만들때 Z가 어디에 있는 인자인지 구분하기 위해 현재 작동하는 함수내 라는 뜻의 self를 입력해줘야한다고 한다.
위에서 정의한 function을 사용할 때, function( 'abba') 만 입력했더니 self값을 넣어줘야한다고 나온다. 그래서 function ('아무문자', 'abba')를 입력하니 값이 출력됐다. 아무문자나 넣으면 안될 것 같은데 아직 class를 공부하지 않아 잘 모르겠다. (아시는분?)
2. return값이 out of function에 있다고 할때
while안에서 return 값을 보기 위해 다음과 같이 입력하였더니 return 값이 out of function 되었다고 나왔다.
while len(strs)<1:
if star.pop(0) != star.pop():
return False
검색해보니 def안에서 while 구문이 선언되어야 return 값이 정상적으로 출력된다고 한다.
반응형
'프로그래밍 > 파이썬' 카테고리의 다른 글
파이썬 kaggle 강의 7/7 (0) | 2021.05.18 |
---|---|
kaggle 파이썬 4/7 (0) | 2021.05.18 |
Kaggle 파이썬 강의 (6/7) (0) | 2021.05.16 |
Kaggle 파이썬 강의 (5/7) (0) | 2021.05.16 |
Kaggle 파이썬 강의 (2/7) (0) | 2021.05.15 |