프로젝트 제출과 해설강의가 진행됐던 날이다.
알고리즘과 자료배열 강의는 앞부분만 조금 진행했는데
강의에선 자전거타기에서 비유하면서 스스로 부딪혀보고 많은 시행착오를 겪어야한다고 말했다.
자료배열 강의 첫번째 문제 알파벳 순서찾기에서 아스키코드를 알게돼서 활용하려고 했었다.
- ord(문자): 문자를 아스키코드 숫자로 변환
chr(숫자): 숫자에 맞는 아스키코드를 반환
다만 강의에선 import string으로 모듈을 가져와서 string.ascii_lowercase 함수를 활용했다. 나는 처음에 아스키코드에서 하나씩 어떻게 뽑아내나 고민을 하고 있었는데 생각해보니,
result = [-1]*len(string.ascii_lowercase)
이런 식이면, len('abcd...xyz') 직접 타이핑해줘도 상관은 없었다. 처음에 각 알파벳이 디폴트값으로 -1을 갖고 있는걸 생각하지 못했던 것이 패인이었던 것 같다.
이후, 해설강의에선 나의 부족함과 내가 고민했던 부분을 다른 사람들도 몇몇 똑같이 했구나 하는 것을 많이 느꼈다. 당장에 과제에서 요구한 내용은 아니었지만,
def__repr__(self) 를 활용해서 class를 프린트했을때 나오는 대표값을 정해주는 메소드를 지정해줄 수 있다. 나같은 경우에는 처음엔 dictionary 형태로 저장해서 뽑아내려 햇는데 이것이 잘안돼서 list형식으로 저장했는데 위와 같은 함수를 사용해주지 않으면 데이터가 저장되어있는 램의 주소만 프린트되기 때문에 그냥 리스트에 내가 원하는 값만 넣어두고 리스트를 프린트하는 방식을 사용했다.
repr과 str의 차이는 개인적으로 공부해봤는데, repr이나 str이 우리 눈에 볼 수 있는 형태로 데이터를 보여주는 것이지만 repr은 데이터를 볼 수 있는 형태로 지정해줘서 보여주는 널널한 방식이라면 str이 데이터의 '원래'값을 볼 수 있는 형태로 보여주는 약간 딱딱한 방식이며, 두가지가 같이 있을때는 더 좁은 개념인 str이 적용된다고 하는 것 같다.