본문 바로가기

Language/Python8

아스키 코드(ascii code) 및 파이썬 아스키 코드 변환 함수 내장 함수 ord() 문자를 아스키코드(ascii)로 변환해주는 함수 형식: ord('문자') ord('a') #97 ord('A') #65 chr() 아스키코드(ascii)를 문자로 변환 형식: chr(숫자) chr(97) #a chr(65) #A 출력 가능한 ascii 문자표 A~Z 65~90 a~z 97~122 2022. 10. 26.
Python 비트 마스크(Bit Mask) 비트 마스크란? 우선 비트(bit, binary digit)는 하나의 비트는 0이나 1의 값을 가질 수 있고, 각각은 참, 거짓 혹은 서로 배타적인 상태를 나타낸다. 즉, 이진수를 비트라고 하는데 이 때 비트 마스크는비트 연산을 통해 문제를 해결하는 것을 뜻한다. 비트 연산자 그렇다면 파이썬의 비트 연산자에 대해 먼저 알아보자. 그 종류는 아래와 같다. & (Binary AND) : bit 단위로 and연산을 합니다. (논리곱) | (Binary OR) : bit 단위로 or연산을 합니다. (논리합) ^ (Binary XOR) : bit 단위로 xor연산을 합니다. (xor:두 비트가 서로 다르면 참, 아니면 거짓) (ex: 1^0=참 / 1^1=거짓 / 0^0=거짓) ~ (Binary NOT) : bi.. 2022. 9. 26.
[Python] inconsistent use of tabs and spaces in indentation 에러 처음으로 SWEA에 코드를 제출하다가 inconsistent use of tabs and spaces in indentation이라는 문구와 함께 컴파일 에러가 발생했다. 들여쓰기를 할 때 스페이스와 탭의 사용이 일관되지 않았다는 뜻으로 해석할 수 있는데 공백을 맞추기 위해 생각없이 스페이스 바와 탭을 불규칙하게 사용했기 때문에 발생했다. IDE에서는 어떻게 작성하든 알아서 오류없이 실행시켜 주지만 평가받을 땐 국물도 없으니 주의하도록 하자. 2022. 9. 21.
Python bisect.bisect_left()와 bisect.bisect_right bisect.bisect_left(a, x, lo=0, hi=len(a), *, key=None) 문서 내 설명: 정렬된 순서를 유지하도록 시퀀스 변수 a에 x를 삽입할 위치를 찾습니다. 매개 변수 lo 와 hi는 고려해야 할 리스트의 부분집합을 지정하는 데 사용될 수 있습니다; 기본적으로 전체 리스트가 사용됩니다. x가 a에 이미 있으면, 삽입 위치는 기존 항목 앞(왼쪽)이 됩니다. 반환 값은 a가 이미 정렬되었다고 가정할 때 list.insert()의 첫 번째 매개 변수로 사용하기에 적합합니다. 요약 a에 x가 존재할 때, x의 가장 처음인덱스를 반환한다. a에 x가 존재하지 않을 때는 a에 x를 삽입했을 때 그 인덱스를 반환한다. bisect.bisect_right(a, x, lo=0, hi=len.. 2022. 9. 10.
[python] 파이썬 리스트의 슬라이싱 파이썬의 슬라이싱이란? 파이썬에서는 시퀀스 객체(리스트, 튜플, 문자열, range객체)의 요소 슬라이싱 기능을 지원하며, 여기서 슬라이싱이란 말그대로 시퀀스 객체의 일부를 잘라내는 것이다 아래 예시를 살펴보자. lst = [2, 3, 5, 7, 1] print(lst[2:4]) # [5, 7] 리스트 lst의 2번째 요소 ~ 4번째 요소 직전 요소까지 잘라낸 결과이다. 문법 sequence[start:stop[:step]] start: 슬라이싱을 시작할 인덱스 번호이다. 생략 시 기본값은 0이다. stop: 슬라이싱을 멈출 인덱스 번호로 생략 시 기본값은 시퀀스 객체의 크기까지이다 즉, 마지막 요소까지라는 말이다. step: range()함수에서도 step 매겨변수가 존재하는 것 처럼 슬라이싱에도 이를.. 2022. 9. 5.
[Python]파이썬 자료형별 시간복잡도 정리 Lists/Tuples(데이터가 수정되지 않는 동작 한정) 리스트는 메모리 주소값을 이용해 임의접근(random access)이 가능하므로 탐색의 시간복잡도가 매우 낮다. 반면 삽입/삭제는 그 인덱스 뒷 요소는 모두 한칸씩 밀려나거나 당겨지기 때문에 뒷 요소만큼 연산이 필요하다. 탐색: O(1) 삽입/삭제: O(N) Operation Example Big-O Index l[i] O(1) Store l[i]=0 O(1) Length len(l) O(1) Append l.append(5) O(1) Delete l.pop() O(1) Clear l.clear() O(1) Slice l[a:b] O(b-a) Extend l.extend(...) O(len(...)) Construction list(...) O(.. 2022. 9. 3.
Python mutable객체와 immutable객체 파이썬에서는 데이터, 함수, 클래스, 모듈, 패키지 등을 모두 객체(object)로 취급한다. 객체는 자료형(data type)을 가지며 메모리를 차지한다. 파이썬의 이런 특징 때문에 파이썬의 변수는 값을 갖지 않는다는 특징이 있다. Do it! 자료구조와 함께 배우는 알고리즘 -p.56 인용 즉, 어떤 변수에 값을 대입하면 변수는 그 값의 주소를 참조한다. 예를 들어 변수 a에 5를 대입해보자 a = 5 위 코드가 실행되면 5라는 int타입의 객체가 메모리에 할당된다. 그 후 메모리에 할당된 객체 주소를 a라는 변수가 가리킨다. 파이썬에선 이를 바인딩이라고 부른다. 이제부터 데이터 타입별 mutable여부를 구분해보고 각 객체별 변수 대입 시 차이점을 살펴보자. 참고) 파이썬에서 모든 값은 어떤 클래스.. 2022. 7. 23.
[python]파이썬 자료형의 참과 거짓 if문 등의 조건문에선 조건식의 참과 거짓을 판별해 흐름을 분기한다. 이 때 Bool형의 True, False값 뿐만아니라 다른 자료형의 참, 거짓 판단하는 특성을 전부 이해하고 앞으로 활용하기 위해 그 기준을 정리하려고 한다. 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면 거짓(False)이 된다. 역으로 비어있지 않으면 참(True)이 된다. 숫자에서는 그 값이 0일 때 거짓이며, 그 외에 값은 참이 된다(음수 포함). 출처: https://wikidocs.net/17 - 자료형의 참과 거짓 2021. 11. 7.