어제 학습한 연산자 중 남은 논리, 할당, 식별, 멤버 연산자를 이어서 학습하였습니다.
중간중간 Discord와 Kahoot을 통해 문제풀이도 하였고 이는 사진으로 정리하겠습니다
논리연산자
1. and
= 두 조건이 모두 참일 때 True를 반환, 하나라도 조건이 다르면 False
2. or
= 두 조건 중 하나라도 참일 때 True를 반환
3. not
= 주어진 조건의 반대값을 반환 True는 False로, False는 True로 반환
단락 평가
and : A and B 형태의 연산에서 A가 거짓으로 평가되면 B는 평가되지 않고 바로 False로 결정
or : A or B 형태의 연산에서 A가 참으로 평가되면, B는 평가되지 않고 바로 True로 결정
not, and, or 의 순서대로 우선순위를 갖고 있음
not이 가장 먼저 실행되고 그다음으로 and, or 순서
할당연산자

식별연산자 (is 구문, id)
1. is
= 두 변수가 같은 곳에 저장된 정보를 바라보고 있다면 True, 다른 곳을 바라보고 있다면 False
2. is not
= 두 변수가 같은 곳에 저장된 정보를 바라보고 있다면 False, 다른 곳을 바라보고 있다면 True
is연산자가 id를 기준으로 주소가 같은지 찾는 것이라면 == 비교 연산자는 값이 같은지 찾는 것
id 함수와 식별연산자를 사용하면 변수가 어떤 객체를 참조하고 있는지 쉽게 확인할 수 있음

멤버연산자
1. in
= 값이 목록 안에 있으면 True
2. not in
= 값이 목록 안에 없으면 True
set에서는 요소만, dict에서는 key값만 확인 가능
다만 일부 메서드를 사용하여 요소의 존재 여부를 파악할 수 있음
in 연산자는 집합이나 dict에서 좀 더 높은 속도
= 시간복잡도 측정
in은 set, dict에서는 O(1)
list와 tuple에서는 O(n)
시간 빠른 순서 : O(1) < O(n) < O(log n) < O(n^2) < O(2^n)

위는 연산과 연산자 우선순위에 대한 표입니다.
1부터 우선순위가 가장 높은것 입니다.
이러한 우선순위를 이해하면 코드의 가독성을 높이고 복잡한 코드도 분석하기 용이합니다.
연산자에 대해 모두 공부한 후 연습문제 풀이 시간이 있었습니다.



문제 4번의 경우 5000원의 개수를 구한 코드로 1000원, 500원, 100원, 50원, 10원을 거스를 수 있었습니다.
그리고 출력할 땐 f-string을 사용하여 출력하였습니다.
Python 연산자 부분을 모두 학습하고 새로운 시퀀스 자료형에 대해 학습하였습니다.
시퀀스 자료형 (Sequence type)
= 여러 개의 항목들이 순서대로 나열된 구조를 나타내는 데이터 유형
Python의 시퀀스 자료형 종류
1. 리스트 (List)
2. 문자열 (String)
3. 튜플 (Tuple)
4. 바이트 (Bytes)
5. 바이트 배열 (Bytearray)
6. 범위 (Range)
인덱싱 (Indexing)
= 첫 번째 항목의 인덱스는 0, 그다음으로 1, 2, 3... 순으로 증가
음수 인덱스를 사용하면 끝에서부터 역으로 접근 가능
슬라이싱 (Slicing)
= 일부분을 선택하여 새로운 시퀀스를 생성할 수 있음
특정 항목의 포함 여부 (Member)
= in 및 not in 키워드를 사용하여 시퀀스에 특정 항목이 포함되어 있는지 확인
연결 및 반복 (Iteration)
* 연산자를 이용해 시퀀스를 연결할 수 있음, * 연산자를 이용하여 반복할 수 있음
내장 함수
= len(), max(), min(), count(), index() 등의 여러 내장 함수를 지원
Python의 패킹(packing)과 언패킹(unpacking)은 데이터를 그룹화하거나 그룹에서 분해하는 방법 제공
패킹 (Packing)
= 여러 개의 데이터를 하나의 변수에 담는 과정
언패킹 (Unpacking)
= 패킹된 데이터를 여러개의 변수로 분배하는 과정
오늘 배웠던 리스트는 5일 수업내용을 포함하여 같이 작성하겠습니다.
아직 바빠서 정리를 못 했네요 ;ㅅ;