목차

    프로그래밍언어/Python

    파이썬 - 연산자(산술, 대입, 관계, 논리, 비트연산자 , 우선순위)

    멍토 2020. 1. 14.

    목차

      산술 연산자

      연산자 의미
      + 양변의 값을 더하기 a = 3 + 2   # a = 5
      - 양변의 값을 배기 a = 3 - 2   # a = 1
      * 양변의 값을 곱하기 a = 3 * 2   # a = 6
      / 좌변의 값을 우변의 값으로 나누기 a = 3 / 2   # a = 1.5
      // 좌변의 값을 우변의 값으로 나눈 몫 a = 3 // 2  #  a = 1
      % 좌변의 값을 우변의 값으로 나눈 나머지 a = 3 % 2  # a = 1
      ** 좌변의 값을 우변의 값으로 제곱 ㅁ = 3 ** 2 # a = 9

       

      더하기 연산

      a, b, c = "2", "3", 4
      print(a + b)
      => 23    #문자열 더하기 연산이므로 합쳐져서 나온다.
      print(int(a) + int(b))
      => 5    #int 형으로 캐스팅해야 원하는 결과가 나온다.
      print(b + c)
      => TypeError : 문자열 + 정수형을 하면 Error가 난다.
      print(int(b) + c)
      => 7
      print(b + str(c))
      => 34   #정수형을 문자형으로 캐스팅한후 더했으므로 34가 나온다.

       

      대입연산자

      연산자 의미
      = 대입(할당) a = 3
      += 좌변의 변수에 우변의 값을 더해 대입 a = 3; a+=2  # a = 5
      -= 좌변의 변수에 우변의 값을 빼서 대입 a = 3; a-=2  # a = 1
      *= 좌변의 변수에 우변의 값을 곱해서 대입 a = 3; a *= 2 # a = 6
      /= 좌변의 변수에 우변의 값을 나누어 대입 a = 5; a /=2 # a = 2.5
      //= 좌변의 변수에 우변의 값을 나누어 몫을 대입 a = 5; a //= 2 # a = 2
      %= 좌변의 변수에 우변의 값을 나누어 나머지를 대입 a = 5; a %= 2 # a = 1
      **= 좌변의 변수에 우변의 값으로 제곱하여 대입 a = 5; a **=2  % a = 25

       

      관계연산자

      연산자 의미
      == 양변의 값이 같다면 True리턴, 아니라면 False 리턴 2 == 2  #True
      != 양변이 다르다면 True, 아니라면 False 2 != 2 #False
      > 좌변이 우변보다 크다면 True, 작거나 같다면 False 2 > 2 #False
      < 좌변이 우변보다 작다면 True, 같거나 크다면 False 2 < 3 # False
      >= 좌변이 우변보다 크거나 같다면 True, 작다면 False 2>=2  True
      <= 좌변이 우변보다 작거나 같다면 True, 크다면 False 2 <= 2 True

       

      #파이썬에서는 수학처럼 양쪽 범위체크가 가능하다.

      파이썬의 경우
      a가 5와 10사이에 있는지 알고싶을때
      5 <= a <= 10
      5~10 사이라면 True를
      아니라면 False를 리턴한다.
      다른 언어의 경우
      a >= 5 && a<= 10    #&&는 and 연산이다.
      a가 5보다 크거나 같고 (그리고) a가 10보다 작거나 같다면
      True를 리턴한다.

      논리 연산자

      연산자 의미
      and 양쪽의 값이 모두 True일때만 True를 리턴 True and False  #False
      or 양쪽 값중 하나만 True라면 True를 리턴 True or False  #True
      not True 일경우 False를 False라면 True를 리턴한다. not True  #False

       

      비트 연산자

      연산자 의미
      & 양변의 비트값이 모두 1일 경우 1을 반환(2진수로 계산시) 0101 & 1001  # 0001
      | 양변의 비트값중 하나라도 1이라면 1을 반환 0010 | 0101  #0111
      ^ 양변값이 다를경우 1, 같을 경우 0을 반환(xor) 0110 ^ 0101  # 0011
      ~ 비트 값이 1일 경우 0, 0일 경우 1을 반환 ~0001 # 1110
      << 좌변의 값을 우변의 값 만큼 왼쪽으로 비트이동 4 << 1 # 100 -> 1000 => 8
      >> 좌변의 값을 우변의 값만큼 우측으로 비트이동 4>>1 # 100 -> 10 => 2

       

      우선순위 연산자 설명
      1 () 괄호
      2 ** 제곱
      3 +, -, ~ 부호, 비트부정
      4 +, /, //, % 곱, 나누기, 몫, 나머지
      5 +, - 더하기, 빼기
      6 <<, >> 비트이동
      7 & 비트 논리곱
      8 ^ 비트 배타적 논리합(exclusive or, xor)
      9 | 비트 논리함
      10 <, <=, >, >=, ==, != 작다, 작거나같다, 크다, 크거나 같다, 같다, 같지 않다.
      11 not 부정
      12 and 논리곱
      13 or 논리합

      1. 괄호가 최우선

      2. 산술연산이 비트연산보다 우선

      3. 관계연산이 논리연산보다 우선

       

      댓글