Python: 사칙연산 + 반올림 round() + 숫자처리 + f-String

Frigate·2022년 5월 21일
0

Python 기초문법

목록 보기
15/27

강의목표: 수학연산자 익히기, 숫자처리 + 반올림 + F-String

참고자료:


1. 사칙연산

덧셈: 3 + 5

뺄셈: 7 - 4

곱셈: 3 * 2

나눗셈: 6 / 3

제곱: 2 ** 3 (2의 3제곱)

  • 나눗셈의 결과값은 부동소수 형태로 출력됌

    6 / 3 의 결과값은 2.0

print(type(6 / 3))
# 실행결과: <class 'float'>


2. 연산 우선순위

괄호 안의 연산 0순위

지수(거듭제곱) 1순위

나눗셈,곱셈은 2순위

덧셈, 나눗셈은 3순위

PEMDAS 연산순서: Parentheses - Exponents - Multiplication - Division - Addition - Substraction

print(3 * 3 + 3 / 3 - 3)
 # 실행결과: 7.0
 # 나눗셈도 있으므로 결과값은 부동소수 형태로 나옴 

코드 실행순서를 보고싶을땐 아래 사이트 참고하시오

Pythontutor.com 또는 Thonny.org



3. 퀴즈! 위 코드를 변경해서 7 대신에 3을 출력하게 하시오

print(3 * (3 + 3 / 3 - 3))
# 실행결과: 3.0



4. round( ) 함수로 반올림 해보기

  • round( ) 함수에 저장된 부동소수타입 값을 반올림함

  • round(8.1323 , 2) 뜻은 8.1323 을 반올림해서 소수점 2번째 자리까지 나타내라는 구문임.

  • 반올림은 소수점 첫째숫자가 5이상이면 올림, 4이하면 내림(버림)하는 연산임.

  • 10.4 를 반올림하면 10이 됌.

print(round(8 / 3))
# 실행결과: 3
   2.6 을 반올림해서 3으로 출력함.


** "{:0.소수점아래몇번째f}".format(변수) 문자열로 소수점 2째자리까지 나타내는 반올림 해보기

a = 13.946
print("%.2f" % a)  #소수점 2째자리까지 나타내는 반올림 실행
print("{:0.2f}".format(a))
print("{:.2f}".format(a))
print("{:.2f}".format(round(a, 2)))

** str형 이다.

a = "{:0.2f}".format(8/3)
print(type(a))
# 실행결과: <class 'str'>
  • 깔끔하게 나눠 떨어지는 연산도, 결과값은 부동소수 형식임.
print(4 / 2)
# 실행결과: 2.0

print(type(4 / 2))
# 실행결과: <class 'float'>

print(type(8 / 3))
# 실행결과: <class 'float'>


5. 반올림할 자릿수 지정해서 반올림하기

  • 아래 예시에서 2.666 의 소수점 2번째는 점 옆옆인 놈을 반올림하란 뜻이라고 생각하기 쉬운데

    그냥 소수점 두번째자리까지만 반올림 결과로 출력해라 라고 받아들이는게 나을 듯함.

print(round(8 / 3, 2))  # 소수점 2번째자리에서 반올림 해라는 뜻
# 실행결과: 2.67
   2.6666 을 2번째 소수자리에서 반올림해서 2.67이 됌

  1. // 연산자로: 소수점 아래 숫자들을 버림(floor) 해보기
  • 결과 중에 정수값만 원할때 사용 (반올림X)

  • 소수점 뒤 모든 숫자를 잘라낸다. 정수로 변환할 필요 없음

print(8 // 3)
# 실행결과: 2

print(type(8 // 3))
# 실행결과: <class 'int'>


7. /= 으로: 같은 연산 반복

  • 4를 2로 나누고, 그 결과인 2를 또 2로 나눌때 쓰임
result = 4 / 2
result /= 2
print(result)
#실행결과: 1.0

  • 사용자의 점수를 추적해보기

    +=. -=, *=, /= : 이전 값에 기반해서 반복 연산

    사용자가 1점의 점수를 얻을 때마다 score 변수를 계속 사용할 수 있음.

    score = score + 1 으로 표현하는 대신에, score += 1 으로 표현할 수 있음

    즉 이전 score에서 1을 더하고, score에 다시 저장한다는 뜻임.

score = 0
#User score +1 every single time
score += 1
print(score)
#실행결과: 1
  1. f-Sting : 문자열 + 다양한 데이터타입을 혼합할때 형변환 생략하고 할 수 있음.

    서로 다른 유형의 데이터타입을 문자열로 처리할 수 있음!!!!

  • 문자열 앞에 f만 붙이면 됌. 그리고 문자열 옆에 { } 중괄호 쳐주고,

    중괄호 안에 여러타입 데이터들을 콤마로 구분해서 여러개 넣으면 됌.

    그러면 중괄호{ } 안의 데이터들을 알아서 문자열형으로 형태 변환해줌

score = 0
height = 1.8
isWinning = True

#f-String 사용해서 위 변수 3개를 + 결합해서 출력해라
print(f"your score is {score}")
# 실행결과: your score is 0

#f-String 사용 가쥬아
print(f"your score is {score}, your height is {height}, you are winning is {isWinning}")
# 실행결과: your score is 0, your height is 1.8,  you are winning is True

#유데미 #유데미코리아 #스타트위드유데미 #스터디윗미

profile
Swift

0개의 댓글