Molybdenum의 개발기록

[TIL] 7일차_python_operator_condition_loop _01 본문

TIL

[TIL] 7일차_python_operator_condition_loop _01

Molybdenum_j 2023. 2. 28. 16:11

▶ 데이터 규모에 따른 스킬들

  • 엑셀 : 사용이 간편하며 100만개의 데이터를 소유하나 만들어진 기능만 사용이 가능하고 속도가 느리다.
  • 파이썬 : 파이썬 문법을 배워야 하며 데이터 RAM 용량만큼 사용이 가능하며 기능을 만들어서 사용이 가능하고 속도가 빠르다.
    • 파이썬 : 가상메모리(DASK)를 사용
  • 데이터 베이스 : SQL 문법을 배워야 하며 데이터 SSD(HDD)용량만큼 사용이 가능하며 속도가 빠르다.
  • 빅데이터 : 여러 개의 컴퓨터를 1대의 컴퓨터처럼 사용이 가능하다. -> SPARK를 사용 : scala 언어, python

 


 

▶ 연산자 : CPU를 사용하는 방법

  • 산술 : +, -, *, /, //, %, ** : 데이터(int, str, list) + 데이터 = 데이터 -> 연산자 우선순위가 존재
    • 데이터 타입에 따라 다르게 연산을 수행한다.
d1, d2, d3, d4 = 1, 2, '3', '4'
d1 + d2, d3 + d4

(3, '34')
  • 할당 : 식별자 <산술> = 데이터
  • 비교 : ==, !==, >, <. >=, <= : 데이터 + 데이터 = 논리값 : 조건이 1개
  • 논리 : not, and, or : 논리값 + 논리값 = 논리값 : 조건이 2개 이상
  • 멤버 : 특정 데이터가 컬렉션 데이터에 포함되었는지 확인하여 결과 논리값을 출력한다.

 

▶ 산술연산자

  • 데이터 타입의 형변환 : int(), float(), bool(), str(), list(), tuptle(), dict()
d1 + int(d3), str(d1) + d3

(4, '13')
  • 추가적인 연산, 형변환
d5, d6 = [1, 2], ['A', 'B', 'C']
d5 + d6, d6 * 2

([1, 2, 'A', 'B', 'C'], ['A', 'B', 'C', 'A', 'B', 'C'])
d5, d6 = [1, 2], list('ABC') <- list는 안에 있는 문자를 따로따로 list를 만들어주는 기능을 한다.
print(d5 + d6, d6 * 2, d4 * 5)

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

▶ 할당연산자 : 누적해서 산술연산을 수행

 

▶ 비교연산자 : ==, !=, >, <, >=, <=

  • 데이터 + 데이터 = 논리값
  • 수식의 문법이 틀리면 False, 맞으면 True 출력
# ATM 기기 코드로 구현
# 인출이 가능하면 True, 불가능하면 False 출력
# 인출금액을 입력받아서 처리 : input()
balance = 10000
draw = int(input('insert draw amount : '))
balance >= draw

insert draw amount :

▶ 논리연산자 : 논리값 + 논리값 = 논리값

* 비교연산자 : 조건 1개, 논리연산자 : 조건 2개 이상

  • not, and(T : T and T = T), or(F : F or F = F)
  • 우선순위 not > and > or
  • and 는 두 개의 조건이 모두 True여야 True
  • or 는 두 개의 조건 중 하나만 True여도 True
not False, not (True and False), False or True, (10 > 5) or (10 > 15)

(True, True, True, True)

▶ 멤버연산자 : 컬렉션 데이터에서 특정데이터가 있는지 확인 : 결과 논리값

  • in, not in
data = list('ABC')
'B' in data, 'D' in data, 'D' not in data

(True, False, True)

 


 

실수할만한 코드

# 부동소수점 연산 문제 : 소수점을 이진수로 연산하다가 생기는 문제
data1, data2 = 0.1, 0.2
(data1 + data2) == 0.3

False

 

해결방법

1. 반올림으로 해결 : round()

    round(number[, ndigits]) : number 를 소수점 다음에 ndigits 정밀도로 반올림한 값을 돌려줍니다.

                                             ndigits 가 생략되거나 None 이면, 입력에 가장 가까운 정수를 돌려줍니다. 

print(round(data1 + data2, 1))
round(data1 + data2, 1) == 0.3

0.3
True

2. 고정 소수점 연산

from decimal import Decimal
print(float(Decimal(str(data1))+ Decimal(str(data2))))
float(Decimal(str(data1)) + Decimal(str(data2))) == 0.3

0.3
True

 

출처 -  멋쟁이사자처럼_AISCHOOL_박우진강사님

'TIL' 카테고리의 다른 글

[TIL] 7일차_python_operator_condition_loop_03  (0) 2023.02.28
[TIL] 7일차_ python_operator_condition_loop _02  (0) 2023.02.28
[TIL] 6일차_질문답변상자 만들기  (1) 2023.02.28
[TIL] 6일차_PYTHON_02  (0) 2023.02.28
[TIL] 6일차_PYTHON_01  (0) 2023.02.28
Comments