-
TIL 2023.04.03내일배움캠프 2023. 4. 3. 21:11
오늘 처음으로 페어 프로그래밍이란 걸 해봤죠.
세 문제 풀었는데 두 문제는 아직도 남들 풀이가 이해가 안되고,
하나는 이진법에 관한 문제였는데 새로운 걸 알게 되었답니다.
우선 문제구요.
저는 이진법을 십진법으로, 십진법을 이진법으로 변환하는 함수를 알지 못했습니다.
그래서 또 무식하게 풀었는데요.
2의 n제곱들을 나열한 리스트를 만들고
bin1, bin2로 들어온 인자의 각 자리수에 그 리스트를 곱해주는 것으로 이진법을 십진법으로 변환했습니다.
def solution(bin1, bin2): bin_ = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] sib1 = 0 sib2 = 0 for i, num in enumerate(bin1[::-1]): sib1 += (int(num)*bin_[i]) for i, num in enumerate(bin2[::-1]): sib2 += (int(num)*bin_[i]) return bin(sib1 + sib2)[2:]
이렇게 말이죠.
그 후 이진법 함수도 있다는 것을 알게 되어서
십진법을 이진법으로 바꾸는 건 함수를 사용해 해결했습니다.
그래서 오늘 작성할 내용은 이진법 관련 함수입니다.
파이썬에서 이진수를 표현하는 방법은 숫자 앞에 접두어 0b를 붙여주는 것입니다.
0b101 -> 5
0b1010 -> 10
이런식으로..
파이썬 내장 함수 bin()을 이용하면 십진법을 이진법으로 변환할 수 있습니다.
bin(5) -> "0b101"
bin(10) -> "0b1010"
이때 반환값은 문자열입니다.
그렇담 bin 함수로 변환한 문자열을 어떻게 다시 십진법으로 변환할까요?
평소에 문자열을 정수로 변환할 때 많이 사용했던 int() 함수를 이용해주면 됩니다.
int() 함수에 진수의 base 값을 추가 인자로 넘겨주시면 됩니다.
int("101", 2) -> 5
int("0b101", 2) -> 5
이렇게 쓰면 됩니다.
format() 함수를 이용하면 접두어를 제외할 수 있습니다.
format(10, "b") -> "1010"
앞에 #을 붙여주면 접두어를 포함할 수도 있습니다.
format(10, "#b") -> "0b1010"
그렇담 위의 문제의 답안을 이렇게 줄일 수 있겠죠?
def solution(bin1, bin2): sum = int(bin1, 2)+int(bin2, 2) return format(sum, 'b')
하하
그리고 장고 기초 과정이 시작됐는데요
오늘 배운 거 좀 정리 할게요
- 용어 정리 - 클라이언트 / 서버 / API
- 클라이언트 : '요청을 보내는 곳' 이라고 생각 하시면 됩니다. 주로 '나', '내 컴퓨터' 혹은 '크롬'을 클라이언트라고 얘기 합니다.
- 서버 : '요청을 받아서 응답 해 주는 곳' 이라고 생각 하시면 됩니다. 우리가 인터넷에서 웹페이지, 로그인등의 행동을 하고 난 후에 이루어지는 많은 과정들을 처리 해 줍니다.
- API : 데이터를 어떻게 주고 받자! 라고 정한 약속 이라고 생각하시면 됩니다.
장고의 MVT 패턴
MVT패턴은 장고가 일하는 방식을 보여줍니다! 하나하나 다 외우지 않아도 되지만, 그림을 보면서 흐름을 파악하면 앞으로 개발을 하는 데에 많은 도움이 될 것이라고 자신합니다!
- M (Model)
- 데이터베이스의 모델 (ORM)
- 저장되고 사용되는 데이터의 형태
- T (Template)
- 사용자에게 보여지는 부분
- 화면
- V (View)
- 실질적으로 프로그램이 동작하는 부분
- url을 요청하고 응답하는 그 사이에 일어나는 '서비스'들이 존재하는 곳
ORM이란?
Django의 ORM은 Python으로 데이터베이스 클래스 모델을 만들고, 만든 모델을 바탕으로 자동으로 데이터베이스를 다룰 수 있도록 도와줍니다.
흔히 '쿼리'(데이터베이스를 다루기 위해 사용하는 언어) 라고 하는 부분들을 작성 하지 않아도 되는 것 입니다!
장고 프로젝트를 만들면 기본적으로 세팅이 되어있습니다.
이 중에서 settings.py 와 urls.py를 많이 다루게 됩니다.
'내일배움캠프' 카테고리의 다른 글
TIL 2023.04.05 (0) 2023.04.05 TIL 2023.04.04 (0) 2023.04.04 WIL 내일배움캠프 3주차 (0) 2023.03.31 TIL 2023.03.31 (0) 2023.03.31 TIL 2023.03.30 (0) 2023.03.30 - 용어 정리 - 클라이언트 / 서버 / API