logo
Search검색어를 포함하는 게시물들이 최신순으로 표시됩니다.
    Table of Contents
    [Python] 연산자

    이미지 보기

    [Python] 연산자

    • 21.12.31 작성

    • 읽는 데 7

    TOC

    참고 강의

    SWEA 파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법 #6


    연산자

    • 연산자는 피연산자들을 원하는 방향으로 움직이게 만드는 역할을 한다.
    • 산술연산자, 대입연산자, 관계연산자, 논리연산자, 비트연산자 등 여러 종류가 있다.

    산술연산자

    • + : 양변의 값을 더하기
    • - : 양변의 값을 빼기
    • * : 양변의 값을 곱하기
    • / : 좌변의 값을 우변의 값으로 나누기
    • // : 좌변의 값을 우변의 값으로 나눈 몫
    • % : 좌변의 값을 우변의 값으로 나눈 나머지
    • ** : 좌변의 값을 우변의 값으로 제곱

    문자형과 숫자형 연산

    문자형 + 문자형은 두 개의 문자열을 연결한 새로운 문자열을 만드는 문자열 접합(+) 연산

    >>> a, b, c = "2", "3", 4
    
    >>> print(a + b)
    23
    
    • 만약 문자형이 아니라 숫자형으로 계산하고 싶다면? : int() 함수
    >>> a, b, c = "2", "3", 4
    
    >>> print(int(a) + int(b))
    5
    
    • 문자형과 숫자형을 접합(+) 연산을 시도한다면? : TyperError
    >>> a, b, c = "2", "3", 4
    
    >>> print(b + c)
    Traceback...
    TypeError: must be str, not int
    

    대입연산자

    용도

    • 변수 선언
    • 연산 결과를 변수에 저장
    • 함수 반환값을 변수에 저장

    종류

    • = : 대입(할당)
    • += : 좌변의 변수에서 우변의 값을 더해서 좌변의 변수에 대입
    • -= : 좌변의 변수에서 우변의 값을 빼서 좌변의 변수에 대입
    • *= : 좌변의 변수에서 우변의 값을 곱해서 좌변의 변수에 대입 ...

    즉, a += b 는 a + b 의 값을 a에 대입하는 것

    >>> a = 10
    >>> a +=5; print(a)
    15
    
    >>> a /= 5; print(a)
    10.0
    # 정수형 변수 a의 값 50 / 정수 5 = 10.0
    # / 연산의 결과는 부동소수점 숫자형을 반환
    

    위 과정에서 다시 한 번 중요한 것은 / 연산의 결과이다.

    주의 '/' 연산의 결과는 부동소수점 숫자형을 반환


    관계연산자

    값을 비교하는 연산

    • == : 양변의 값이 같으면 True를 반환
    • != : 양변의 값이 다르면 True를 반환
    • 기타 부등호 등

    논리연산자

    선택의 문제에서 특정 조건을 만족하는지를 검사하기 위한 조건식을 만들 때 사용

    • and : 양변의 값 모두 True일 경우에만 True 반환
    • or : 양변의 값 모두 False일 경우에만 False 반환
    • not : True일 경우 False, False일 경우 True를 반환
    >>> a = 3
    
    >>> not (a > 7 and a < 12)
    True
    # not (False and True)
    # not (False)
    # True
    

    비트연산자

    &

    • 비트 논리곱 연산자
    • and와 비슷
    • 양변의 비트 값 모두 1일 경우에만 1를 반환
    >>> x, y = 1, 0
    >>> print(x & y)
    0
    
    >>> a, b = 2, 3  # 0010, 0011
    >>> print(a & b)  # 0010 & 0011 => 0010
    2  # 0010
    

    |

    • 비트 논리합 연산자
    • or과 비슷
    • 양변의 값 모두 0일 경우에만 0
    >>> x, y = 1, 0
    >>> print(x | y)
    1
    
    >>> a, b = 2, 3  # 0010, 0011
    >>> print(a | b)  # 0010 | 0011 => 0011
    3  # 0011
    

    ^

    • 비트 배타적 논리합 연산자
    • 양변의 값이 다를 경우 1, 같을 경우 0을 반환
    >>> x, y = 1, 0
    >>> print(x ^ y)
    1
    
    >>> a, b = 2, 3  # 0010, 0011
    >>> print(a ^ b)  # 0010 ^ 0011 => 0001
    1  # 0001
    

    ~

    • 비트 부정 연산자
    • 단항 연산자
    • 비트의 값이 1일 경우 0, 0일 경우 1을 반환
    >>> x = 1
    -2
    
    >>> a = 2  # 0010
    print(~a)  # ~ 0010 => 1101
    -3  # 1101
    

    <<

    • 비트 왼쪽 shift 연산자
    • 좌변의 값을 우변의 값 만큼 비트를 왼쪽으로 이동
    • 즉, 우변 값만큼 2로 곱한다.
    >>> x = 4
    >>> print(x << 1)
    8
    
    >>> a = 8  # 0000 1000
    >>> print(a << 1)  # 0000 1000 << 1 => 0001 0000
    16 # 0001 0000
    

    >>

    • 비트 오른쪽 shift 연산자
    • 좌변의 값을 우변의 값 만큼 비트를 오른쪽으로 이동
    • 즉, 우변값만큼 2로 나눈다.
    >>> x = 4
    >>> print(x >> 1)
    2
    
    >>> a = 8  # 0000 1000
    >>> print(a >> 1)  # 0000 1000 >> 1 => 0000 0100
    4  # 0000 0100
    

    연산자의 우선순위

    1. () : 괄호
    2. ** : 제곱
    3. +, -, ~ : 부호, 비트 부정
    4. *, /, //, % : 곱하기, 나누기, 몫, 나머지
    5. +, - : 더하기, 빼기
    6. <<, >> : 비트 shift 연산자
    7. & : 비트 논리곱
    8. ^ : 비트 배타적 논리합
    9. | : 비트 논리합
    10. <, <=, >, >=, ==, != : 비교 연산자
    11. not : 부정
    12. and : 논리곱
    13. or : 논리합
    1. 괄호가 최우선
    2. 산술 연산이 비트 연산보다 우선
    3. 관계 연산이 논리 연산보다 우선
    
    profile

    FE Developer 박승훈

    노력하는 자는 즐기는 자를 이길 수 없다