본문 바로가기

TIL

TIL 042623

3진법

45를 3진법으로 나타내려면 몫이 0이 될때까지 3으로 계속 나누면서 그 나머지들을 쭈욱 쓰면 된다.

45/3=15...0

15/5=5...0

5/3=1...2

1/3=0...1

---> 10진법 45 = 3진법 1200

divmod(): 나눗셈에서 몫과 나머지를 모두 구해준다.

quotient, remainder = divmod(45, 3)  # quotient=15, remainder=0

divmod(45, 3)  # (15, 0) 튜플 타입으로 반환


int를 쓰면 n진수를 쉽게 10진수로 변환할 수 있다.

int('숫자', n): 앞에 들어가는 숫자는 꼭 타입이 string이어야 한다.

int('1200', 3)  또는 int(str(1200), 3)  # 45


문제를 풀 때 사용하진 않았지만 파이썬 내장함수에 10진수를 2,8,16진수로 변환해주는 것도 있다고 한다.


숫자 뒤집기
int(str(12345)[::-1])  # 54321

여기서도 str 주의해서 빼먹지 말기!


리스트의 특정 위치에 값 추가: .insert(인덱스, 값)

base3_list = []

base3_list.insert(0, 0)  # base3_list = [0]

base3_list.insert(0, 0)  # base3_list = [0, 0]

base3_list.insert(0, 2)  # base3_list = [2, 0, 0]

base3_list.insert(0, 1)  # base3_list = [1, 2, 0, 0]


숫자 리스트를 하나의 숫자로

''.join(map(str, [1, 2, 0, 0]))  # 1200


리스트 슬라이싱

arr = [1, 2, 3, 4, 5]

arr[1: 4]  # [2, 3, 4]

3번 인덱스 값까지 슬라이스 하고 싶으면 3+1=4를 입력!

시작값은 0부터 시작하는 리스트의 인덱스, 끝값은 진짜로 몇 번째 값인지!


https://daeun-computer-uneasy.tistory.com/74?category=983126 

 

[알고리즘] 특정 기준으로 리스트 정렬하기 (python) - key=lambda

요즘 정렬 문제를 많이 풀다보면, 리스트를 특정 기준으로 정렬해야할 때가 많다. 단순히 .sort(), sorted()로의 오름차순 내림차순으로는 풀 수 없는 문제도 많이 만났고, 이럴때는 key=lambda 함수를

daeun-computer-uneasy.tistory.com

strings = ["abce", "abcd", "cdx"]

sorted(strings, key=lambda x : (x[2], x))  # ["abcd", "abce", "cdx"]

---> 리스트의 각 요소 x에서 2번 인덱스 값인 "c", "c", "x"를 기준으로 정렬한 후  # ["abce", "abcd", "cdx"]

기준값이 "c"로 같은 "abce"와 "abcd"는 단어 자체를 기준으로 정렬한다.   # ["abcd", "abce", "cdx"]


장고 docs에 나온 예시대로 age = models.PositiveIntegerField() 넣었더니 createsuperuser 시 오류 발생

 

db.sqlite3, migrations/0001_initial.py 등 삭제 후 다시 makemigrations, migrate -> 실패

괄호 안에 blank=True 넣기 -> 실패

 

null=True

 

다른 필드는 괜찮아도 PositiveIntegerField는 null=True 필요!!!

 

'TIL' 카테고리의 다른 글

TIL 042823  (0) 2023.04.28
TIL 042723  (0) 2023.04.27
TIL 042523  (0) 2023.04.25
TIL 042423  (0) 2023.04.24
TIL 042123  (0) 2023.04.21