수식
컴퓨터를 사용하면 우리가 복잡한 계산을 직접 할 필요가 없다. 컴퓨터가 빠른속도로 정확히 계산하여 그 결과를 알려주므로, 우리는 정확히 계산 하도록 알맞은 수식을 올바르게 작성해 컴퓨터에게 지시해야 한다.
수식(expression)이란 피연산자들과 연산자의 조합이다.
연산자(operator)는 어떤 연산을 나타내는 기호, 피연산자(operand)는 연산의 대상이다.
산술 연산자
연산자의 종류
연산자 | 기호 | 사용 예 | 결과값 |
더하기 | + | 5 + 3 | 15 |
빼기 | - | 5 - 3 | 2 |
곱하기 | * | 5 * 3 | 15 |
나누기 | / | 5 / 3 | 1.6666 ... |
지수(제곱) | ** | 5 ** 3 | 123 |
나누기(몫) | // | 5 // 3 | 1 |
나머지 | % | 5 % 3 | 2 |
대입(할당) | = | X = 10 |
지수 연산자 ( ** )
파이썬은 다른 프로그래밍 언어에서는 거의 없는 지수(power) 계산을 위해 ' ** ' 연산자를 제공
17 ** 2 # 결과값 289
10 * 2 ** 7 # 결과값 1280
2 ** 2 ** 3 # 결과값 256
지수연산자는 오른쪽에서 왼쪽으로 계산된다. 지수 연산자는 다른 연산자들보다 높은 우선순위를 갖는다.
ex )
나머지 연산자 %
X % Y는 ' X ' 를 Y로 나누어 남은 나머지를 결과로 반환한다.
x = int(input("나누어지는 수를 입력 하시오 : "))
y = int(input("나누는 수를 입력 하시오 : "))
print("나눗셈의 몫 : ", x // y)
print("나눗셈의 나머지 : ", x % y)
- 나머지 연산자를 이용하여 초를 분단위로 바꾸는 프로그램
sec = 1000
min = sec // 60
remainder = sec % 60
print(min,"분",remainder,"초 입니다.")
대입 연산자 ' = '
대입연산자 ' = ' 의 사용 규칙은 왼쪽에는 반드시 변수가 와야하고 오른쪽에는 수식 또는 값이 와야한다.
100 = X + Y # 이것은 잘못된 수식 ' =' 왼쪽에 변수가 없기 때문이다.
복합 대입 연산자
복합 대입 연산자(compound assignment operator)란 대입 연산자와 다른 연산자를 합쳐 놓은 것을 말한다.
X += 2 <-> X = X + 2 # 서로 같은 의미
복합 연산자 | 의미 |
X += Y | X = X + Y |
X -= Y | X = X - Y |
X *= Y | X = X * Y |
X /= Y | X = X / Y |
X //= Y | X = X // Y |
X %= Y | X = X% Y |
복합 대입 연산자를 다른 연산자와 함께 사용할 때에는 연산자의 우선순위에 신경을 써야한다.
예를 들어 X = X * 2+3 을 복합 대입 연산자를 이용해 X *= 2 + 3처럼 작성하면 잘못된 것이다.
X = 10
Y = 10
X = X * 2+3
Y *= 2+3
print(X) # 결과 23
print(Y) # 결과 50
연산자의 우선순위
연산자 | 설명 |
** | 지수 연산자 |
~ , + , - | 단항 연산자 |
* , / , %, // | 곱셈, 나눗셈, 나머지 연산자, 나눗셈(몫) |
+, - | 덧셈 , 뺄셈 |
>> , << | 비트 이동 연산자 |
& | 비트 AND 연산자 |
^, | | 비트 XOR 연산자, 비트 OR 연산자 |
<=, <, >, >= | 비교 연산자 |
<>, ==, != | 동등 연산자 |
=, %=, /=, //=, -=, +=, *=, **= | 대입 연산자 |
is, is not | 아이덴티티 연산자 |
in, not in | 소속 연산자 |
not, or , and | 논리 연산자 |
우선 순위는 위로 갈수록 높고 아래로 갈수록 낮아진다.
- 사용자로부터 3개의 수를 입력받아 평균을 출력하는 프로그램
A = int(input("첫번째 수를 입력하세요 : "))
B = int(input("첫번째 수를 입력하세요 : "))
C = int(input("첫번째 수를 입력하세요 : "))
avg = (A + B + C) / 3
print("평균 : ",avg)
'Python' 카테고리의 다른 글
[Python] 자료형 (1) | 2024.01.10 |
---|---|
[Python] 문자열/수 입력받기 (1) | 2023.12.27 |
[Python] 변수 (2) | 2023.12.27 |