- 오늘자 google colab 주소
- [?] google colab 자체가 하나의 블로그 글처럼 쓸 수 있는데, 옵시디언에 쓸 내용과 콜랩에 쓸 내용을 어떻게 해야할까?
- 오늘자 멘토님 google colab 주소
- 0014 Python 🐍
- 알고리즘, 디버깅 챕터를 제외한 모든 강의는 google colab에서 진행할 예정.
- google colab 자체 단축키 등등
- google python coding convention
-
types
- 변수를 처음 만나면
type
,dir
빌트인 펑션을 사용하여 종류를 찍어보자. isinstance(variable, type)
을 사용하여 변수의 타입을 런타임에 체크할 수 있다.-
속성
- 모든 타입은
class
이며, 그 안에 들어있는 메서드, 매직 메서드, 멤버들을 속성이라고 부른다. 이때 사용자는 파이썬 표준 라이브러리 안에 있는 클래스들의 속성을 변경할 수도, 추가할 수도 있다. 권장하지는 않지만 때로 확장이 필요한 경우에 고민해 보면 좋을 것 같다. (래퍼클래스에 매직메서드 구현이면 군침이 도는걸)
class int(int): def _add__(self, a): return 'hello, world!' int('10') + int('10') # 신기하게도 'hello, world'가 나온다!
- 모든 타입은
- 변수를 처음 만나면
-
formatting
print(f'{"hello":<10}')
=> 10칸을 사용하여 왼쪽 정렬print(f'{"hello":>10}')
=> 10칸을 사용하여 오른쪽 정렬print(f'{"hello":^10}')
=> 10칸을 사용하여 가운데 정렬print(f'{"hello":!<10}')
=> 10칸을 사용하여 왼쪽 정렬, 이때 공백을!
으로 채우기f{1.212323:.3f}
: floating point formatting
-
int
- built-in functions
int.bit_length()
=> sign, leading zero를 제외한 해당 숫자를 표현하기 위해 필요한 정확한 비트의 개수를 리턴한다.int.to_bytes(length=1, byteorder, signed)
=> 정수형을 의미하는 바이트의 배열을 리턴한다.(2).to_bytes(1, byteorder='little', signed=True)
- 2의 보수법
- 자체적으로 음수를 표현할 수단이 없기 때문에 2의 보수법을 사용한다. 한 마디로 정리하면 비트 뒤집고 +1 하면 음수다.
- 1의 보수법으로 음수를 표현하면 안되냐? => +0과 -0이 생기는 문제가 발생. 일단 비트 하나를 낭비한다는 문제도 있고, -0 + 1 = 0이라는 괴랄한 예외도 생긴다.
- 따라서, 비트 오버플로를 활용한 2의 보수법이 현재 정수 표기법으로 채택된 것이다.
- built-in functions
- float
- int형과 셈을 하면 별도로 지정하지 않는 이상 float로 형변환 된다.
- 부동소수점 특유의 오차가 발생 => 정확한 소수점 계산이 불가.
- 무한대수 문제: decimal 0.5를 이진수로 나타내면 binary 0.1이지만, decimal 0.1을 이진수로 나타내면 binary 0.000110011001100110011... 가 끝도없이 반복된다.
멘토의 조언#
여러분, 실력자 분들은 어떻게 정리하셔야 할지 잘 모르시겠죠? 그래서 준비해 보았습니다.
-
우선 아래 Lv0코드를 보면서 모르는 문법이나, 활용하는 문법에서 모르는 것이 있는지 한 번 체크해보세요.(https://github.com/paullabkorea/programmersLv0) fast io in python
- 모르는 것이 있으시면 한 번 정리 부탁드립니다. 예를 들어 collections나 itertools나 functools, re 정규표현식 같은 것이요.
- 우리 수업에 해당 수업이 들어 있습니다. 예를 들어 정규표현식이 부족하시다면 정규표현식 수업에는 꼭 수업을 들으시고, 정리한 것을 확인하시고 복습해보세요.
- 수업 시간에 아는 내용들이 나오는 시간에는 1.1을 수행하시면 됩니다.
-
만약 모르는 문법이 없고, 거의 다 자신있다면 문법보다는 부족한 부분을 채워주세요. DB, ERD, 리눅스, AWS, HTTP 등이요. 실습도 해보시고, 여러 자료를 보면서 블로그로 정리해두시면 좋습니다. 역시나 부족한 부분에 수업하는 시간은 꼭 수업을 들으시고, 정리한 것을 확인하시고 복습해보세요.
-
조금 난이도 있는 알고리즘 문제는 저희 후반부에서도 다루니 조금 기다리셔도 좋습니다. 다만 지금 공부를 하고 싶으시다면 저는 책으로는 "파이썬 알고리즘 인터뷰"를 권해드립니다. 제가 알고리즘 책 중 가장 좋아하는 책이에요. 🙂 상길님이 카카오 코테 출제위원이셨습니다. 유형도 잘 정리가 되어 있고요.
Python 책으로는 O'reilly Learning python 책이 정말 잘 나왔어요. 다만 이 책이 초급자 대상으로 나오긴 했으나 초급자에게 권하긴 힘듭니다. 1000페이지씩 상, 하로 나뉘어 있어요. 6판 나오면서 분량도 더 늘었다 들었습니다. O'reilly 시리즈 중 전문가를 위한 파이썬 FLUENT PYTHON도 정말 좋았습니다. 위 책은 페이지부터 압박이라서 한국 서적 중에서는 저는 ‘파이썬 코딩 도장’이 정말 괜찮았어요. 영상강의도 무료로 제공해주고, 텍스트도 웹으로 공개되어 있습니다. ‘점프 투 파이썬’도 유명하긴 한데 저희 수업에서 다루는 내용은 이보다 한 단계 위입니다. 파이썬을 이미 조금 다루실 수 있으신 분은 ‘컴퓨터 사이언스 부트캠프 with 파이썬’이거 보시면 한 단계 업 되실겁니다!