코딩의 기록

따라하며 배우는 파이썬과 데이터과학 - 3. 연산자로 계산을 해 보자

모루우 2024. 11. 29. 16:48
728x90
반응형

1. 수식은 어디에나 있다

수학의 수식: 수학적 표기법과 기호를 이용하여 수학적 개념을 표현하는 것

컴퓨터의 수식: 하나의 값으로 평가될 수 있는 표현

 

2.할당 연산자를 통해 변수에 값을 넣자

할당연산자 =

다중 할당문: x, y = 100

동시 할당문: x, y = 100, 200

 

파이썬은 선언을 하지 않아도 됨

그러나 내부적으로는 변수를 선언하는 일이 일어남

 

3. 수식과 연산자는 어떻게 쓰는 걸까

수식: 피연자들과 연산자의 조합

// 나눗셈(정수 나눗셈의 몫)

/ 나눗셈 (실수 나눗셈)

% 나머지

 

4. 컴퓨터 과학에서 아주 중요한 나머지 연산자: %

몫은 //, 나머지는 %

짝수나 홀수를 구분할 때 유용

time = int(input("초를 입력하세요: "))

second = time % 60
min = time // 60 % 60
hour = time // 60 // 60

print("입력한 시간은", hour, "시간", min, "분", second, "초입니다.")

 

n = int(input("몇각형을 그리시겠어요?(3-6): "))

import turtle

t = turtle.Turtle()

t.shape('turtle')

angle = 180 - 180 * (n - 2) / n

for i in range(n):
    t.forward(100)
    t.left(angle)
f = float(input("화씨온도: "))

c = (f - 32) * 5/9

print("섭씨온도:", c)



eight = float(input("몸무게를 kg 단위로 입력하시오: "))
height = float(input("키를 미터 단위로 입력하시오: "))

BMI = weight / height**2

print("당신의 BMI = ", BMI)
sex = int(input("여성이면 1, 남성이면 0을 입력하세요: "))
height = int(input("당신의 키는 얼마입니까? "))
weight = float(input("당신의 허리 둘레는 얼마입니까? "))

RFM = 64 - (20 * (height/weight)) + 12 * sex

print("당신의 RFM은", RFM)
money = int(input("투입한 돈: "))
cost = int(input("물건 값: "))

change = money - cost

print("거스름돈:", change)

print("500원 동전의 개수: ", change // 500)
print("100원 동전의 개수: ", change % 500 // 100)

 

6. 복합 할당 연산자라는 편리한 연산자

i //= 10 >> i = i // 10

 

7. 두 값의 크기를 비교하는 비교 연산자

파이썬은 크거나 같다가 가능함

 

8. AND, OR, NOT도 연산자로 사용가능하다 : 논리 연산자

부울연산자 : 값이 있으면 1, 값이 없다면 0 (유일하게 숫자 0만 0을 반환)

 

9. 이진수를 잘 다루는 컴퓨터에 최적화된 연산자: 비트 연산자

비트 단위로 처리가 이루어지는 연산

 

비트 단위 AND & 해당 비트가 모두 1이면

비트 단위 OR | 해당 비트 중 하나라도 1이면

비트 단위 XOR ^ 비트의 값이 같으면 0,

비트 단위 NOT ~ 0은 1로 만들고 1은 0으로 만든다

비트 단위 왼쪽으로 이동 << 지정된 개수 만큼 모든 비트를 왼쪽으로 이동

비트 단위 오른쪽으로 이동 >> 지정된 개수 만큼 

 

bin(): binary 10진수 숫자를 2진수 숫자로 바꿔주는 함수

 

컴퓨터는 음수를 표현하기 위해 최상위비트가 1이면 그 값을 음수값으로 취급하는 방법을 사용함

그리고 음수값은 보수를 이용하는데

 

보수: 보충하는 수

예를들어서 a + b = c 라면 c의 a에 대한 보수는 b임

보수를 쓰는 이유는 2진수의 뺄셈을 덧셈 과정으로 계산하여 경제적 효용성을 높이기 위함임 그리고.. 2진수는 이 보수가 굉장히 효율적이기도 하고 안타깝게도 컴퓨터는 뺄셈을 하지 못한다

 

보수에는 n과 n-1 의 보수가 있다 (이때 n은 n진수를 말함)

 

n - 1의 보수: 더 했을 때 자리수가 넘어가지 않는 수

n의 보수: 더 했을 때 자리수가 넘어가는 수

 

즉 1101의 2의 보수는 0010에 1을 더한 0011임

 

 

 

https://songios.tistory.com/12

 

보수(Complement)와 보수 뺄셈에 대한 정말 쉬운 설명

노션에서 읽기 0과1로 이루어진 컴퓨터 세계에 마이너스(-) 부호가 있을 리 없다. 그렇다면 컴퓨터는 뺄셈을 어떻게 실행할까? 또, 음수는 어떻게 표현할까? 바로 👉🏻보수를 이용한다. 보수 구

songios.tistory.com

 

 

 

https://jays-log1111.tistory.com/entry/4-2-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%B9%84%ED%8A%B8%EC%97%B0%EC%82%B0%EC%9E%90-2%EC%9D%98-%EB%B3%B4%EC%88%98-%EA%B3%B5%EB%B6%80%ED%95%98%EA%B8%B0

 

#4-2 파이썬 비트연산자, 2의 보수 공부하기

안녕하세요 재이입니다. 오늘은 비트 연산자에 대해서 배워볼 거예요. 그 전에! 비트 연산자를 이해하기 위해선 2진수에 대해 이해해야 합니다. 그럼 먼저 2진수에 대해 배워볼까요? 2진수란 1과

jays-log1111.tistory.com

 

 

10. 연산자 사이에도 먼저 처리하는 것이 있다

x = int(input("첫 번째 수를 입력하시오: "))
y = int(input("두 번째 수를 입력하시오: "))
z = int(input("세 번째 수를 입력하시오: "))

avg = (x + y + z) / 3

print("평균 = ", avg)

 

x, y, z = map(int, input('세 정수를 입력하시오: ').split())

 

11. 랜덤 모듈과 math 모듈로 다양한 기능을 사용해보자

import random
a = random.random()
print(a)

 

math 모듈

random 모듈

 

random.randint(1, 7) > 1 이상 7 이하의 임의의 정수를 반환

 

random.randrange(7) > 0 이상 7 미만의 임의의 정수를 반환

 

random.randrange(1, 7) > 1 이상 7 미만의 임의의 정수를 반환

 

random.randrange(0, 10, 2) > 0, 2, 4, 8 중 하나를 반환

 

randrange는 미만, randint는 이하

 

math 모듈

원주율 파이, 자연상수 e 등 상수 값과 실수의 절대 값 fabs(), ceil(), floor(), log(), sin(), cos()

 

 

 

 

728x90
반응형