우리는 수학 시간에 덧셈, 뺄셈, 곱셈 등과 같은 연산자를 사용해 본 경험이 있을 것입니다. 프로그램에서도 연산자를 이용해서 연산을 할 수 있습니다. 이번 시간에는 파이썬에서 연산자를 사용하는 방법에 대해서 살펴보겠습니다.
1. 파이썬 연산자 종류
연산자를 기능으로 구분하면 산술, 할당, 비교, 논리 연산자가 있습니다.
- 산술 연산자: 수학의 덧셈, 뺄셈 등과 같은 연산 기능을 합니다.
- 할당 연산자: 오른쪽의 피연산자를 왼쪽의 피연산자에 대입하는 기능이 있습니다.
- 비교 연산자: 피연산자의 크고/작음 등을 연산합니다.
- 논리 연산자: 피연산자의 이치(True, False)를 따지는 연산자입니다.
2. 피연산자란?
피연산자란, 연산의 대상으로 연산에 필요한 데이터를 뜻합니다.
sum = num1 + num2
# 연산자: =, +
# 피연산자 sum, num1, num2
num1과 num2는 덧셈(+) 연산의 대상으로 피연산자 입니다. 그리고 sum도 할당 (=) 연산의 대상으로 피연산자 입니다.
3. 산술 연산자
수학 시간에 경험한 덧셈, 뺄셈, 곱셈, 나눗셈과 같은 사칙 연산자를 파이썬에서는 산술 연산자라고 합니다. 파이썬에서는 사칙 연산자에 나머지 연산자(%), 몫 연산자(//), 지수 연산자(**)가 추가 됩니다.
num1 = 10
num2 = 20
result = num1 + num2 # 덧셈 연산자
print('result: ' + str(result)) # result: 30
result = num1 - num2 # 뺄셈 연산자
print('result: ' + str(result)) # result: -10
result = num1 * num2 # 곱셈 연산자
print('result: ' + str(result)) # result: 200
result = num1 / num2 # 나눗셈 연산자
print('result: ' + str(result)) # result: 0.5
result = num1 % num2 # 나머지 연산자
print('result: ' + str(result)) # result: 10
result = num1 // num2 # 몫 연산자
print('result: ' + str(result)) # result: 0
result = 3 ** 2 # 지수 연산자
print('result: ' + str(result)) # result: 9
산술 연산자는 일상생활에서도 자주 경험했기 때문에 쉽게 이해할 수 있습니다.
※ 숫자 외에 문자열도 덧셈 연산할 수 있습니다.
str1 = 'Good'
str2 = ' '
str3 = 'morning'
result = str1 + str2 + str3 # 문자열 덧셈 연산자
print('result: ' + str(result)) # result: Good morning
문자열을 덧셈하면 결과는 문자열을 이어서 붙이게 됩니다.
※ 문자열과 숫자를 곱셈 연산할 수도 있습니다.
str1 = 'h'
result = str1 * 5
print('result: ' + str(result)) # result: hhhhh
문자열과 숫자를 곱셉 연산하면, 결과는 문자열 숫자만큼 이어 붙이게 됩니다.
4. 할당 연산자
대입 연산자라고도 하는 할당 연산자는 변수에 값을 할당(대입)하는 데 사용되는 연산자 입니다.
num1 = 10 # 오른쪽 10을 num1에 할당(대입)
num2 = 20 # 오른쪽 20을 num2에 할당(대입)
num3 = num2 # 오른쪽 num2의 값을 num3에 할당(대입)
num4 = num1 + num2 # 오른쪽 num1 + num2의 덧셈 결괏값을 num4에 할당(대입)
5. 복합 대입 연산자
할당 연산자에서 파생한 연산자로 산술연산자과 할당 연산자가 결합된 형태입니다.
예를 들어 num1 변수에 10을 할당하고, 다시 num1에 20을 더한다고 하겠습니다.
num1 = 10
num1 = num1 + 20
print('num1: ' + str(num1)) # num1: 30
결과로 num1에 30이 할당된 것을 확인할 수 있습니다.
여기서 'num = num1 + 20'을 복합 대입 연산자를 이용해서 간단하게 코딩할 수 있습니다.
num1 = 10
# num1 = num1 + 20
num1 += 20
print('num1: ' + str(num1)) # num1: 30
'+='는 덧셈과 할당 연산자를 합친 것으로 이런 것을 복합 대입 연산자라고 합니다. 결과적으로 산술 연산자와 할당 연산자가 결합된 형태를 '복합 대입 연산자'라고 합니다.
num = 100
print('num: ' + str(num)) # num: 100
num = 100
num += 10
print('num: ' + str(num)) # num: 110
num = 100
num -= 10
print('num: ' + str(num)) # num: 90
num = 100
num *= 10
print('num: ' + str(num)) # num: 1000
num = 100
num /= 10
print('num: ' + str(num)) # num: 10.0
num = 100
num %= 10
print('num: ' + str(num)) # num: 0
num = 100
num //= 10
print('num: ' + str(num)) # num: 10
num = 100
num **= 10
print('num: ' + str(num)) # num: 100000000000000000000
6. 비교 연산자
비교 연산자는 두 개의 피연산자를 비교하는 연산자입니다. 예를 들어 나이가 20살 이상이면 성인 그렇지 않으면 미성년 등과 같이 두 개의 피연산자 값을 비교할 때 사용되고, 결과 값은 True 또는 False로 불(Bool) 타입니다.
myAge = 19
result = myAge >= 20
print('result: ' + str(result)) # result: False -> 미성년
result = myAge < 20
print('result: ' + str(result)) # result: True -> 성인
비교 연산자는 총 6개가 있습니다.
num1 = 100
num2 = 200
print(num1 == num2) # ==(같다): 같다면 True 그렇지 않다면 False
print(num1 != num2) # !=(같지 않다): 틀리다면 True 그렇지 않다면 False
print(num1 > num2) # >(크다): 크면 True 그렇지 않다면 False
print(num1 >= num2) # >=(크거나 같다): 크거나 같으면 True 그렇지 않다면 False
print(num1 < num2) # <(작다): 작으면 True 그렇지 않다면 False
print(num1 <= num2) # <=(작다): 작거나 같으면 True 그렇지 않다면 False
※ 숫자 외에 문자열을 비교할 수 있습니다.
str1 = 'hello'
str2 = 'HELLO'
print(str1 == str2) # False
print(str1 != str2) # True
문자열 비교는 문자열이 같은지 틀린지에 따라서 결괏값이 결정됩니다.
7. 논리 연산자
논리 연산자는 피연산자의 이치를 이용하는 연산자로 and, or, not이 있습니다.
- and 연산자: '그리고'의 뜻으로, 피연산자가 모두 True인 경우에만 결괏값으로 True를 반환합니다.
num1 = 100
num2 = 200
print(num1 < num2 and num1 != num2) # num1 < num2 -> True, num1 != num2 -> True
print(num1 > num2 and num1 != num2) # num1 > num2 -> False, num1 != num2 -> True
print(num1 < num2 and num1 == num2) # num1 < num2 -> True, num1 == num2 -> False
print(num1 > num2 and num1 == num2) # num1 > num2 -> False, num1 = num2 -> False
and 연산자를 기준으로 'print(num1 < num2 and num1 != num2)'만 양쪽의 결괏값이 True이고, 나머지는 모두 False입니다. 따라서 'print(num1 < num2 and num1 != num2)'만 True를 출력합니다.
- or 연산자: '또는'의 뜻으로, 피연산자 중 하나라도 True가 있다면 결괏값은 True입니다.
num1 = 100
num2 = 200
print(num1 < num2 or num1 != num2) # num1 < num2 -> True, num1 != num2 -> True
print(num1 > num2 or num1 != num2) # num1 > num2 -> False, num1 != num2 -> True
print(num1 < num2 or num1 == num2) # num1 < num2 -> True, num1 == num2 -> False
print(num1 > num2 or num1 == num2) # num1 > num2 -> False, num1 = num2 -> False
or 연산자를 기준으로 'print(num1 > num2 or num1 == num2)'만 양쪽의 결괏값이 False이고, 나머지는 모두 적어도 하나는 True입니다. 따라서 ' print(num1 > num2 or num1 == num2)'만 False를 출력하고 나머지는 모두 True를 출력합니다.
- not 연산자: 'not'은 '부정'의 뜻으로, 피연산자의 현재 상태를 부정하는 연산자입니다.
flag = True
print('flag: ' + str(flag)) # True
print('not flag: ' + str(not flag)) # False
최초 flag에 True를 할당했습니다. 그리고 'not flag'를 이용해서 현재 상태를 부정했으므로 결괏값은 False입니다.
이번 시간에는 연산자에 대해서 살펴봤습니다. 연산자를 한 번에 모두 외울 필요는 없습니다. 우선은 이렇게 있다는 정도로만 익혀두고 코딩을 계속하다면 보면 자연스럽게 익숙해질 수 있습니다.
'python' 카테고리의 다른 글
[7장] 반복문 (1) | 2024.11.29 |
---|---|
[6장] 조건문 (0) | 2024.11.28 |
VSCode 폰트 크기 및 테마 변경 (0) | 2024.11.26 |
[4장] 데이터와 변수 (0) | 2024.11.26 |
[3장] VSCode 설치 및 기본 설정 (0) | 2024.11.24 |