쥬피터 노트북 실행방법 cd p1 엔터(p1 폴더로 이동한다) jupyter lab을 쳐서 실행 lab은 notebook과 기능이 다르다. 아나콘다 네비게이터에서 쥬피터 랩, 노트북을 실행할 수도 있다. 쥬피터 노트북은 다른 탭으로 열리고, 쥬피터 랩은 오른쪽에 열린다. Alt + Enter : 실행 후 다음 코드 셀을 생성한다. Ctrl + Enter : 제자리에서 실행 Shift + Enter: 실행 후 다음으로 마크다운은 글씨를 쓰는 것이고, 코드셀은 코드를 넣는다. 위에 셀을 생성하려면 a, 아래는 b, 지울려면 dd 원래는 esc +dd로 해야하는 것들. 되돌리려면 z 마크다운으로 전활하려면 m, 코드셀로 전환하려면 y 를 하면 한줄 내려간다. shift+L 을 누르면 라인 번호 표시한다. ve..
힙은 특정한 규칙을 가지는 트리이다. 규칙에 따라 최대힙, 최소힙으로 나뉘며, 최대 힙은 부모 노드가 자식 노드보다 크고, 최소 힙은 부모 노드가 자식 노드보다 작다. 최대힙이나 최소힙을 구축하기 위해서는 규칙만 다르고 모두 동일하다. 무작위 배열에서의 최대 힙은 max.heapify(n) 연산을 통해 생성되는데, 과정은 아래와 같다. 1. 현재 노드와 자식 노드의 값을 비교한다. 2. 현재 노드의 값이 가장 크지 않으면 자식 노드 중 가장 큰 값과 현재 노드의 값을 바꾼다. 3. 만약 자식 노드가 없거나 현재 노드의 값이 가장 크면 연산 종료. 4. 맞바꾼 자식 노드의 위치를 현재 노드로 하여 1~3을 반복. 계속해서 맞바꿔가면 되기에 이론은 생각보다 쉽다. 참고로 max.heapifiy(n)에서 n은..
파이썬을 공부하러 인터넷을 돌아다니다 흥미로운 걸 보게 되었다. 지능형 리스트(list comprehension)를 쓰느냐, map 함수를 쓰느냐에서 지능형 리스트를 쓰는 게 좋다는 것. 사실 지능형 리스트는 for 문이 들어가 있어서 map 함수를 쓰는 게 좋다고 생각했는데, 아니었다. a = [sum(i) for i in s if i>20] b = list(filter(lambda x x>20, map(sum,s)) 만약에 리스트 내에 for 문이 들어 있는 값을 할당한다면, 무조건 리스트 컴프리 헨션이 빠르다. 이는 데이터 값이 많을수록 차이가 훨씬 난다. https://testspoon.tistory.com/186 RePythonOOP 9일차 파이썬 컨테이너 VS 플랫, 가변 VS 불변, 리스트 ..
bin,oct,hex 함수를 사용할 때는 항상 0b,0o,0x가 붙는다. print(bin(10)) print(oct(10)) print(hex(10)) 0b1010 0o12 0xa 이럴 때는 두 가지 방법이 있다. 1. 인덱싱하기 print(bin(10)[2:]) print(oct(10)[2:]) print(hex(10)[2:]) 1010 12 a 자체적으로 2번째 항목부터 인덱싱을 하면 빠진다. 2. 포맷함수 사용해서 변환 format(10진수 숫자, '변환하고자 하는 진수의 표현방식')으로 사용하면 된다. 당연하게도 b는 2진수, o는 8진수, x는 16진수다. format(10, 'b') format(10, 'o') format(10, 'x') +보너스 16진수 변환 할 때 소문자로 나온다. 만약..
문자열을 포매팅 할 때 사용하는 함수를 나열한다. 1. %포맷팅 %문자를 사용해서 포매팅 '%+자료형 종류' % 값의 형식으로 사용한다 print("%f" % n) print("%0.0f"% n) print('%d %d' % (a,b)) print('%02d %0.4f' % (a,b)) 형식으로 사용 자료형 문자 정수 %d 실수 %f 문자열 %s 8진수 %o 16진수 %x % %% 여러 개 변수 형태를 알고 있어야 한다. 2. format 함수 내장함수 format()을 사용하여 포매팅 print("이것은 프린터 {0} 입니다." .format(3)) #값 입력 print("{0:02d}.{1:03d}.{2:01d}" .format(a,b,c)) #변수입력 print("{Y:02d}{M:02d}".for..
10진법을 N 진법으로 변환하는 가장 기본은 해당 수로 몫과 나머지를 구해나가며, 나중에 나머지를 역순으로 붙인다는 것이다. python에서는 int 함수나 hex, bin 같은 내장 함수로 10진수를 2,8,16 진수로 바꿀 수 있고, n 진수에서 10진수로 바꾸는 것도 가능하다. 하지만 10진법을 n진법으로 바꾸기 위해서는 따로 설정해주는 함수가 필요한데, 이는 다음과 같다. import string tmp = string.digits+string.ascii_uppercase+string.ascii_lowercase #진수 변환 함수 print(tmp) def convert(num, base) : q, r = divmod(num, base) #몫과 나머지를 구한다. if q == 0 : return ..