210420 python day-03 : 연산자, 시퀀스
강의 목표
1. 파이썬에 연산자의 종류와 연산자의 우선 순위를 이용하여 연산을 실행할 수 있다.
2. 시퀀스에 대한 구문을 살펴보고 활용할 수 있다.
3. 파이썬의 제어문의 종류를 이해하고 코드를 작성할 수 있다.
4. 클래스의 개념을 이해할 수 있다.
어제 못다한 부분 포함하여 시작했으나 오늘도 3.4.번은 나가지 못했다....
===================================================================
연산자(operator)
대상을 두고 계산을 할 때 사용하는 문자를 말함. 계산이 이루어지는 대상을 피연산자라고 함.
연산자와 피연산자는 주어진 식을 계산하고 결과를 리턴함.
산술, 비교, 논리, 비트, 시프트, 대입 연산자가 있다.
1. 산술연산자 : +, *, -, /, %, **, // 등 사칙연산에 %는 나머지, **는 거듭제곱, //는 몫.
2. 비교, 관계연산자 : 두 개의 값을 비교해서 그 결과(True, False)를 리턴하는 연산자
>, <, >=, <=, ==, !=. !=의 경우 다른 언어에서 (<>)로 쓰는 경우도 있음.
3. 논리연산자 : and, or, not을 이용해서 각 논리값들 사이에 사용하는 연산자로 결과(True, False)를 리턴
True = 1, False = 0
( > ) & ( > ), ( > ) | ( > )
두 개의 연산이 있을 경우 and 연산은 첫 연산의 결과가 False이면 뒤 연산을 수행하지 않고 False를 리턴
두 개의 연산이 있을 경우 or 연산은 첫 연산의 결과가 True이면 뒤 연산을 수행하지 않고 True를 리턴
4. 비트연산자 : Bitwise and, Bitwise or, Bitwise not, Bitwise XOR, Bitwise right shift, Bitwise left shift를
이용해서 각 비트값들 사이에 사용하는 연산자. 결과(bit)를 리턴
~, &, |, ^, >>, <<
ex) 10 | 4 : 1010 | 0100 = 1110 이므로 14가 리턴
~10 : 00000000 00000000 00000000 00001010 뒤집으면 11111111 11111111 11111111 11110101
첫 자리는 부호이므로 음수이고 -11이라는데 왜 -11로 읽히는지는 잘 모르겠다.
10 >> 2 : 00000000 00000000 00000000 00001010 에서 우측으로 두 칸
00000000 00000000 00000000 000010 넘어가는 건 날리고 빈자리는 0
즉, 한 칸 갈때마다 /2 해서 몫만 남김
10 << 2 : 위와 반대로 이동. 한 칸 갈때마다 *2
5. 대입연산자 : 대입연산자는 변수에 값을 저장하기 위한 용도 기존 연산자에 = 을 붙임
+=, -= 등등
6. 기타연산자 : dict, str, list, tuple 등 시퀀스에서 값을 찾을 수 있는지의 유무를 테스트할 때 사용
is : 비교하는 객체의 주소가 같은지 유무
is not : 비교하는 객체의 주소가 다른지 유무
in : 연속항목에서 지정된 값이 존재하는지 유무
not in : 연속항목에서 지정된 값이 존재하지 않는지 유무
문자열은 string pool에서 가져오므로 내용이 같으면 주소가 같다.
리스트는 내용이 같아도 주소가 다르다.
===================================================================
시퀀스(sequence) : 파이썬에서 문자열, 수치 등을 관리하는 기본 자료형(dict, str, list, tuple 등)
1) 배열 형식 : 문자열, 수치 등을 나열해서 관리하는 배열 형식을 취한다.
2) 인덱싱(indexing) : 배열로 저장된 형식을 취하기 때문에 색인을 자료의 위치를 참조해서
값을 리턴받고 활용할 수 있다.
3) 슬라이싱(slicing) : 특정 구간의 자료를 리턴할 수 있는 기능
4) 연결, 반복 : +, *
5) 기타연산자를 통해서 시퀀스 자료의 유무를 체크
1. 문자열 _string - str : 처음 초기값으로 설정된 값은 인덱싱으로 변경X
1) 문자열의 인덱싱 : 문자열은 각각 한 글자마다 인덱스를 가지고 0부터 나열한 값을 가지게 된다.
역순으로 -(음수)값을 가진 인덱스로 매핑된다.
호출은 문자변수[인덱스]로 호출하면 값을 리턴함.
2) 슬라이싱(slicing) : [인덱스시작 : 인덱스끝 : 스텝]으로 명시해서 범위에 맞는 값을 잘라서 리턴하며 단계를 지정함.
3) 연결, 반복 : +, *
4) 기타연산자
2. 튜플_tuple - ( , , , ) : 빈튜플( ), 혼합형튜플( , , , ), 중첩.(nested)( , ( ), [ ])의 형식. 값 변경이 불가능
1) 인덱싱 : 문자열과 같음
2) 슬라이싱(slicing) : 문자열과 같음
3) 연결, 반복 : +, *
4) 기타연산자
값에 None을 넣을 수 있는데 리턴하면 안 나옴. 공백을 넣을 수는 없음" " 말고 걍 공백
3. list - [ , , , ] : 빈리스트[ ], 혼합형리스트[ , , , ], 중첩.(nested)[ , ( ), [ ]]의 형식. 값 변경이 가능
1) 인덱싱 : 문자열과 같음
2) 슬라이싱(slicing) : 문자열과 같음
3) 연결, 반복 : +, *
4) 기타연산자
===================================================================