Python은 다양한 연산자를 제공하여 데이터를 조작하고 계산을 수행합니다.
1. 산술 연산
산술 연산자는 기본적인 수학 계산에 사용됩니다.
+: 덧셈-: 뺄셈*: 곱셈/: 나눗셈//: 몫 (정수 나눗셈)%: 나머지
// 연산자와 % 연산자의 예시는 다음과 같습니다.
num1 = 20
num2 = 3
quotient = num1 // num2
remainder = num1 % num2 # 20을 3으로 나눈 나머지
print(f"몫: {quotient}")
print(f"나머지: {remainder}")
실행 결과:
몫: 6
나머지: 2
사용자로부터 숫자를 입력받아 35의 배수인지 확인하는 예제입니다.
user_input = int(input("숫자를 입력하세요: "))
if user_input % 35 == 0:
print("입력하신 숫자는 35의 배수입니다.")
else:
print("입력하신 숫자는 35의 배수가 아닙니다.")
2. 비교 연산
비교 연산자는 두 값을 비교하여 불리언(Boolean) 결과를 반환합니다.
>: 초과<: 미만>=: 이상<=: 이하==: 같음!=: 다름
== 및 != 연산자의 예시입니다.
val1 = 10
val2 = 20
print(f"{val1} == {val2}: {val1 == val2}")
print(f"{val1} != {val2}: {val1 != val2}")
실행 결과:
10 == 20: False
10 != 20: True
3. 할당 연산
할당 연산자는 변수에 값을 할당하는 데 사용됩니다. 복합 할당 연산자는 연산과 할당을 동시에 수행합니다.
=: 값 할당+=: 더하고 할당 (예:a += b는a = a + b와 동일)-=: 빼고 할당*=: 곱하고 할당- ... 등
일반적인 변수 값 교환 방법은 다음과 같습니다.
x = 30
y = 40
temp = x
x = y
y = temp
print(f"교환 후 x: {x}, y: {y}")
Python에서는 튜플 언패킹을 사용하여 더 간결하게 값을 교환할 수 있습니다.
x, y = y, x
print(f"Python식 교환 후 x: {x}, y: {y}")
이 기법은 먼저 우변의 값들을 튜플 (y, x)로 묶은 다음, 이 튜플의 요소들을 좌변의 변수 x와 y에 순서대로 할당하는 원리로 작동합니다.
+= 연산자를 사용하여 1부터 100까지의 합을 구하는 예제입니다.
counter = 1
total_sum = 0
while counter <= 100:
total_sum += counter # total_sum = total_sum + counter 와 동일
counter += 1 # counter = counter + 1 와 동일
print(f"1부터 100까지의 합: {total_sum}")
4. 논리 연산
논리 연산자는 불리언 값들을 결합하여 결과를 도출합니다.
and: 논리곱 (양쪽 모두 참일 때만 참)or: 논리합 (둘 중 하나라도 참이면 참)not: 논리 부정 (참이면 거짓, 거짓이면 참)
print(f"True and True and True and False: {True and True and True and False}")
print(f"False or True or False or False: {False or True or False or False}")
print(f"not False: {not False}")
사용자 로그인을 시뮬레이션하는 예제입니다.
user_id = input("사용자 ID: ")
user_pw = input("비밀번호: ")
if user_id == "admin" and user_pw == "123456":
print("로그인 성공")
else:
print("로그인 실패")
and, or, not 연산자가 함께 사용될 때는 괄호를 사용하여 연산 순서를 명확히 하는 것이 좋습니다.
result_with_parens = (True and False) or (True and False) or (not True and True) or False
print(f"괄호 사용 시 결과: {result_with_parens}")
괄호가 없을 경우 연산 순서는 다음과 같습니다: not > and > or
result_without_parens = True and False or True and False or not True and True or False
print(f"괄호 없을 시 결과: {result_without_parens}")
위 코드의 연산 과정:
not True계산:Falseand연산 수행:True and False→False,True and False→False,False and True→Falseor연산 수행:False or False or False or False→False
5. 멤버십 연산
멤버십 연산자는 시퀀스(리스트, 튜플, 문자열 등) 내에 특정 요소가 포함되어 있는지 확인합니다.
in: 요소가 시퀀스에 존재하면True반환not in: 요소가 시퀀스에 존재하지 않으면True반환
my_list = [1, 2, 3, 4, 5, 6]
print(f"3 in my_list: {3 in my_list}")
print(f"666 not in my_list: {666 not in my_list}")
실행 결과:
3 in my_list: True
666 not in my_list: True