데이터과학자 - 강의/python

210420 python day-03 : 연산자, 시퀀스

vs질럿 2021. 4. 20. 21:14

강의 목표

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) 기타연산자

 

===================================================================