본문 바로가기

PYTHON/Basic

operators

연산자



산술연산자

+, -, *, /, //, %, **

부동소수점

0.1 + 0.2 = 0.30000000000000004

  • 해결 1. 유효숫자 지정 (반올림)

    • round(2.2) = 2
    • round(-3.8) = -4

  • 해결 2. 고정소수점 연산: 십진법 연산 모듈, str 객체 생성, int 연산 가능

      from decimal import Decimal

    • float(Decimal('0.1') + Decimal('0.2')) = 0.3

  • 해결 3. fraction (분자, 분모) int/float 연산 가능

      import fractions

    • fractions.Fraction(5, 30) = Fraction(1, 6)
    • fractions.Fraction(0.75) = Fraction(3, 4)
    • a = fractions.Fraction(9, 28)
    • a.numerator = 9
    • a.denominator = 28

  • 해결 4. math 모듈

      import math

    • math.ceil(4.3) = 5


비교연산자

==, !=, >, <, <=, >=


할당연산자

=, +=, -=, *=, /=, //=, %=, **=


비트연산자

  • 2진수 연산 방식

  • bin() : 이진수 문자열로 변환

bin(5) = '0b101'
0b10110 = 22
int('11101', 2) = 29


  • & : bit 단위로 and 연산

  • | : bit 단위로 or 연산

  • ^ : bit 단위로 xor 연산

  • ~ : bit 단위로 not 연산 (1의 보수)

  • <</>>

  • bit 단위로 왼/오른쪽 비트단위 밀기 연산

  • 양수는 0, 음수는 1 채워짐

  • 왼쪽/오른쪽 shift 마다 2^n 곱한/나눈 효과

bin(0b10101 & 0b11100) = 0b10100
0b10101 & 0b11100 = 28 & 21 = 20
bin(0b10101 | 0b11100) = 0b11101
0b10101 | 0b11100 = 28 | 21 = 29
bin(0b10101 ^ 0b11100) = 0b1001
0b10101 ^ 0b11100 = 28 ^ 21 = 9
bin(~0b10101) = -0b10110
~0b10101 = -22
~28 = -29


논리연산자

  • and : 둘 다 참일 때 참
  • or : 둘 중 하나 참일 때 참
  • not : 참이면 거짓, 거짓이면 참

멤버연산자

  • in : list 내에 포함되어 있으면 참
  • not in : list 내에 포함되어 있지 않으면 참

식별연산자

  • is : 개체메모리 위치나 값이 같으면 참
  • is not : 개체메모리 위치나 값지 않으면 참

'PYTHON > Basic' 카테고리의 다른 글

function  (0) 2019.12.28
loops  (0) 2019.12.28
conditions  (0) 2019.12.28
datatype  (0) 2019.12.28
Python Basic Syntax  (0) 2019.12.28