파이썬 - 연산자

JiWOn·2023년 1월 3일
0

🦁멋쟁이 사자처럼 AI School 8기 강의
👩‍💻 박두진 강사님 강의 2일차 (2023.1.3)

연산자

CPU를 사용하는 방법

산술

  • +,-,*,/,//,%,**
  • 데이터와 데이터를 연산
  • 결과 값도 데이터

산술연산자 알아보기

  • + : 덧셈
  • - : 뺄셈
  • * : 곱셈
  • / : 나눗셈
  • // : 나눗셈에서 몫만
  • % : 나눗셈하고 나머지
  • ** : 제곱

📝 제곱? 제곱근?

data1, data2 = 14,4
print('제곱',data2**2)
print('제곱근', data1**0.5)

💬 결과

제곱 16
제곱근 3.7416573867739413

산술연산자 우선순위

  1. ()
  2. **
  3. *,/,//,%
  4. +,-

⚠주의⚠

데이터 타입이 같아야 연산이 가능함!
str + int (오류 발생)

데이터타입 형변환

int(),float(),bool(),list(),tuple(),dict(), set()

bool() 형변환 했을때 False가 나오는 데이터
bool(0), bool(0.0), bool(''), bool([]), bool(()), bool({})

list 타입에서의 연산

📝 예제

d5,d6 = [1,2],list('ABC')
print(d5+d6,d6*2,d4*5)

💬 결과

[1, 2, 'A', 'B', 'C'] ['A', 'B', 'C', 'A', 'B', 'C'] 44444

할당연산자

누적해서 산술연산 수행

📝 할당연산자 확인하기

data = data + 1
data += 1
  • 할당연산자는 산술연산자들 다 가능함

비교

  • ==,!=,>,<,>=,<=,
  • 데이터와 데이터의 비교연산
  • 결과는 논리값으로
  • 비교문이 틀리면 False, 맞으면 True
  • 조건이 1개

논리

  • 논리값 + 논리값 = 논리값
  • 조건이 2개이상

우선순위

  1. not
  2. and
  3. or

멤버

  • 컬렉션 데이터에서 특정 데이터가 있는 확인
    • 결과 논리값
  • in, not in

예제모음집

ATM기

  1. 인출 금액을 입력받음
  2. 인출이 가능하면 True, 불가능할 경우 False를 출력
  • 1회당 최대 인출금액이 5000원임
  • 잔고보다 인출 금액이 작거나 같아야 함

📝예제 코드

balance = 10000
draw = int(input())

(balance - draw >= 0) and (draw <= 5000)

부동소수점

문제발생?!

📝 문제의 코드

0.1+0.2==0.3

💬 결과
False

부동소수점

  • 컴퓨터가 소수와 소수의 연산을 할 때 2진법으로 계산하기 때문에 간단한 계산이더라도 딱 떨어지게 계산할 수 없음
  • 따라서 0.1+0.2를 하더라도 값이 0.3000000004 이런식으로 나옴

해결방안

  1. 반올림으로 해결 : round()
    round(값, 자릿수)

  2. 고정소수점 연산

    • 속도가 대신 좀 느림
    from decimal import Decimal
     print(float(Decimal(str(data1)) + Decimal(str(data2))))
     float(Decimal(str(data1)) + Decimal(str(data2)))==0.3

0개의 댓글