본문 바로가기

Python/[400제로 배우는 파이썬 입문]

[파이썬 입문] #4. 연산자

728x90
반응형

일단 따라 해 보기

print("어서오세요.")
name = input("성명을 입력 하세요 >> ")
print("{}님 안녕하세요".format(name))
year = int(input("생년을 입력 하세요(예:2002) >> "))

nowYear = 2024
age = nowYear-year+1
print("{}님은 {}년 현재 {}세 입니다.".format(name,nowYear,age))
if(age >= 20):
    print("\\n{}님은 성인입니다.".format(name))
else:
    print("\\n{}님은 미성년자입니다.".format(name))
    

연산자

산술 연산자

파이썬의 주요 산술 연산자를 이름과 설명과 함께 표로 정리하였습니다:

연산자 이름 설명

+ 덧셈 두 값을 더합니다.
- 뺄셈 첫 번째 값에서 두 번째 값을 뺍니다.
* 곱셈 두 값을 곱합니다.
/ 나눗셈 첫 번째 값을 두 번째 값으로 나눕니다.
// 정수 나눗셈 첫 번째 값을 두 번째 값으로 나누고, 정수 부분만 반환합니다.
% 나머지 첫 번째 값을 두 번째 값으로 나눈 후 나머지를 반환합니다.
** 거듭제곱 첫 번째 값을 두 번째 값만큼 거듭 제곱합니다.
  • 산술 연산자 예제 코드
# 덧셈
a = 20
b = 4
result_addition = a + b 
print(f"{a} + {b} = {result_addition}")

result_subtraction = a - b# 뺄셈
print(f"{a} - {b} = {result_subtraction}")

result_multiplication = a * b# 곱셈
print(f"{a} * {b} = {result_multiplication}")

result_division = a / b# 나눗셈
print(f"{a} / {b} = {result_division}")

result_floor_division = a // b# 정수 나눗셈
print(f"{a} // {b} = {result_floor_division}")

result_modulus = a % b# 나머지
print(f"{a} % {b} = {result_modulus}")

result_exponentiation = a ** b# 거듭제곱
print(f"{a} ** {b} = {result_exponentiation}")

비교 연산자

파이썬의 비교 연산자는 두 값을 비교하여 참(True) 또는 거짓(False)을 반환합니다. 주로 조건문에서 사용되며, 다양한 상황에서 두 값의 관계를 판단하는 데 사용됩니다.

  • 비교 연산자의 종류

연산자 이름 설명

== 동등 두 값이 같으면 참을 반환합니다.
!= 같지 않음 두 값이 같지 않으면 참을 반환합니다.
> 크다 첫 번째 값이 두 번째 값보다 크면 참을 반환합니다.
< 작다 첫 번째 값이 두 번째 값보다 작으면 참을 반환합니다.
>= 크거나 같다 첫 번째 값이 두 번째 값보다 크거나 같으면 참을 반환합니다.
<= 작거나 같다 첫 번째 값이 두 번째 값보다 작거나 같으면 참을 반환합니다.
  • 비교 연산자 예제 코드
더보기
# 변수 설정
a = 10
b = 5

# 동등 비교
result_equal = (a == b)
print(f"{a} == {b}: {result_equal}")  # 결과: False

# 같지 않음 비교
result_not_equal = (a != b)
print(f"{a} != {b}: {result_not_equal}")  # 결과: True

# 크다 비교
result_greater = (a > b)
print(f"{a} > {b}: {result_greater}")  # 결과: True

# 작다 비교
result_less = (a < b)
print(f"{a} < {b}: {result_less}")  # 결과: False

# 크거나 같다 비교
result_greater_equal = (a >= b)
print(f"{a} >= {b}: {result_greater_equal}")  # 결과: True

# 작거나 같다 비교
result_less_equal = (a <= b)
print(f"{a} <= {b}: {result_less_equal}")  # 결과: False

# 다른 예제
c = 10
d = 10

# 동등 비교
result_equal = (c == d)
print(f"{c} == {d}: {result_equal}")  # 결과: True

# 같지 않음 비교
result_not_equal = (c != d)
print(f"{c} != {d}: {result_not_equal}")  # 결과: False

# 크다 비교
result_greater = (c > d)
print(f"{c} > {d}: {result_greater}")  # 결과: False

# 작다 비교
result_less = (c < d)
print(f"{c} < {d}: {result_less}")  # 결과: False

# 크거나 같다 비교
result_greater_equal = (c >= d)
print(f"{c} >= {d}: {result_greater_equal}")  # 결과: True

# 작거나 같다 비교
result_less_equal = (c <= d)
print(f"{c} <= {d}: {result_less_equal}")  # 결과: True

대입 연산자

파이썬에서 대입 연산자는 변수에 값을 할당하는 데 사용됩니다. 가장 기본적인 대입 연산자는 =이며, 이는 오른쪽의 값을 왼쪽의 변수에 할당합니다.

a = 5

위의 예제에서 a 변수에 5가 할당됩니다.

  • 대입 연산자와 비교 연산자의 차이점
    • 대입 연산자 (=):
      • 용도: 변수에 값을 할당할 때 사용됩니다.
      • 설명: 왼쪽에 있는 변수에 오른쪽에 있는 값을 대입합니다.
      • 예시: a = 5는 변수 a에 5를 대입합니다.
    • 비교 연산자 (== 등):
      • 용도: 두 값을 비교하여 참(True) 또는 거짓(False)을 반환할 때 사용됩니다.
      • 설명: 두 값이 같은지, 다른지, 크거나 작은지 등을 비교합니다.
      • 예시: a == 5는 변수 a가 5와 같은지 비교합니다.

대입 연산자는 값을 변수에 할당하는 데 사용되며, 비교 연산자는 두 값을 비교하여 조건을 평가하는 데 사용됩니다.

복합 대입 연산자

복합 대입 연산자는 대입 연산자와 산술 연산자를 결합한 형태로, 변수를 업데이트하는 데 사용됩니다. 이를 통해 코드의 간결성과 가독성을 높일 수 있습니다.

연산자 이름 설명

+= 더하고 대입 변수에 값을 더한 후, 그 결과를 다시 변수에 대입합니다.
-= 빼고 대입 변수에서 값을 뺀 후, 그 결과를 다시 변수에 대입합니다.
*= 곱하고 대입 변수에 값을 곱한 후, 그 결과를 다시 변수에 대입합니다.
/= 나누고 대입 변수를 값으로 나눈 후, 그 결과를 다시 변수에 대입합니다.
//= 정수 나누고 대입 변수를 값으로 정수 나눈 후, 그 결과를 다시 변수에 대입합니다.
%= 나머지 대입 변수에 값을 나눈 후 나머지를 다시 변수에 대입합니다.
**= 거듭제곱 대입 변수에 값을 거듭제곱한 후, 그 결과를 다시 변수에 대입합니다.
&= 비트 AND 대입 변수에 비트 AND 연산 후, 그 결과를 다시 변수에 대입합니다.
` =` 비트 OR 대입
^= 비트 XOR 대입 변수에 비트 XOR 연산 후, 그 결과를 다시 변수에 대입합니다.
<<= 왼쪽 시프트 대입 변수의 비트를 왼쪽으로 시프트한 후, 그 결과를 다시 변수에 대입합니다.
>>= 오른쪽 시프트 대입 변수의 비트를 오른쪽으로 시프트한 후, 그 결과를 다시 변수에 대입합니다.
  • 복합 대입 연산자 예제
더보기
# 초기값 설정
a = 10

# 더하고 대입
a += 5   # a = a + 5
print(a)  # 결과: 15

# 빼고 대입
a -= 3   # a = a - 3
print(a)  # 결과: 12

# 곱하고 대입
a *= 2   # a = a * 2
print(a)  # 결과: 24

# 나누고 대입
a /= 4   # a = a / 4
print(a)  # 결과: 6.0

# 정수 나누고 대입
a //= 2  # a = a // 2
print(a)  # 결과: 3.0

# 나머지 대입
a %= 2   # a = a % 2
print(a)  # 결과: 1.0

# 거듭제곱 대입
a **= 3  # a = a ** 3
print(a)  # 결과: 1.0

# 초기값 재설정
a = 10

# 비트 AND 대입
a &= 7   # a = a & 7
print(a)  # 결과: 2

# 비트 OR 대입
a |= 5   # a = a | 5
print(a)  # 결과: 7

# 비트 XOR 대입
a ^= 3   # a = a ^ 3
print(a)  # 결과: 4

# 왼쪽 시프트 대입
a <<= 2  # a = a << 2
print(a)  # 결과: 16

# 오른쪽 시프트 대입
a >>= 1  # a = a >> 1
print(a)  # 결과: 8

논리 연산자

파이썬의 논리 연산자는 논리값(불리언 값) 간의 논리 연산을 수행합니다. 주요 논리 연산자는 and, or, not이 있습니다.

  • and: 논리곱 연산자. 두 피연산자가 모두 참일 때만 참을 반환합니다.
  • or: 논리합 연산자. 두 피연산자 중 하나라도 참이면 참을 반환합니다.
  • not: 논리 부정 연산자. 피연산자의 값을 반대로 바꿉니다.

논리곱과 논리합 결과표

A (참/거짓) B (참/거짓) A and B A or B

거짓 거짓
거짓 거짓
거짓 거짓 거짓 거짓
  • 논리 연산자의 예제 코드
더보기
# 변수 설정
a = True
b = False

# 논리곱 (and)
result_and = a and b
print(f"{a} and {b}: {result_and}")  # 결과: False

# 논리합 (or)
result_or = a or b
print(f"{a} or {b}: {result_or}")  # 결과: True

# 논리 부정 (not)
result_not_a = not a
print(f"not {a}: {result_not_a}")  # 결과: False

result_not_b = not b
print(f"not {b}: {result_not_b}")  # 결과: True

삼항 연산자

파이썬의 삼항 연산자는 간단한 조건부 연산을 한 줄로 표현할 수 있게 합니다. 조건이 참이면 첫 번째 표현식을 반환하고, 거짓이면 두 번째 표현식을 반환합니다.

💡 참 일 때 실행할 코드 if 조건 else 거짓일 때 실행할 코드

삼항 연산자의 결과표

조건 값 1 값 2 결과

값1 값2 값1
거짓 값1 값2 값2
  • 삼항 연산자의 예제 코드
number = 120
result = "100보다 크다" if number > 120 else "100보다 작다"
print(result)

print("True 입니다.") if False else print("False 입니다.")
print("True 입니다.") if True else print("False 입니다.")

단항 연산자

단항 연산자는 하나의 피연산자에만 작용하는 연산자입니다. 파이썬에서 사용되는 주요 단항 연산자는 + (양수), - (음수), not (논리 부정) 등이 있습니다.

  • 단항 연산자 표

연산자 이름 설명

+ 양수 피연산자를 양수로 표시합니다.
- 음수 피연산자의 부호를 반대로 만듭니다.
not 논리 부정 피연산자의 논리 값을 반대로 만듭니다.
  • 단항 연산자 예제 코드
# 변수 설정
a = 5
b = -3
c = True

# 양수
result_positive = +a
print(f"+{a} = {result_positive}")  # 결과: 5

# 음수
result_negative = -a
print(f"-{a} = {result_negative}")  # 결과: -5

# 논리 부정
result_not = not c
print(f"not {c} = {result_not}")  # 결과: False

연산자 우선순위

파이썬에서 연산자 우선순위는 여러 연산자가 함께 사용될 때 어떤 연산자가 먼저 수행될지를 결정합니다. 우선 순위가 높은 연산자가 먼저 수행됩니다.

  • 연산자 우선 순위 표
1 () 괄호
2 ** 거듭제곱
3 +x, -x, ~x 단항 연산자: 양수, 음수, 비트 NOT
4 *, /, //, % 곱셈, 나눗셈, 정수 나눗셈, 나머지
5 +, - 덧셈, 뺄셈
6 <<, >> 비트 이동 연산자: 왼쪽 시프트, 오른쪽 시프트
7 & 비트 AND
8 ^ 비트 XOR
9 ` `
10 ==, !=, >, >=, <, <= 비교 연산자
11 not 논리 NOT
12 and 논리 AND
13 or 논리 OR
14 if ... else 삼항 연산자
15 =, +=, -=, *=, /= 등 대입 연산자 및 복합 대입 연산자

연산자의 결합 방식

연산자의 결합 방식은 같은 우선순위를 가진 연산자가 함께 사용될 때, 어떤 순서로 연산이 수행되는지를 결정합니다. 결합 방식에는 주로 왼쪽에서 오른쪽으로 결합 (좌결합)과 오른쪽에서 왼쪽으로 결합 (우결합) 두 가지가 있습니다.

  • 좌결합 (Left-to-Right Associativity): 연산자가 왼쪽에서 오른쪽으로 결합됩니다.
    • 예: , /, //, %, +, -, <<, >>, &, ^, |, ==,!=, >, >=, <, <=
  • 우결합 (Right-to-Left Associativity): 연산자가 오른쪽에서 왼쪽으로 결합됩니다.
    • 예: =, +=, -=, *=, /=, **, not
더보기
# 좌결합 예제
result_left = 10 - 5 - 2
print(f"10 - 5 - 2 = {result_left}")  # 결과: 3 (왼쪽에서 오른쪽으로 계산: (10 - 5) - 2)

# 우결합 예제
result_right = 2 ** 3 ** 2
print(f"2 ** 3 ** 2 = {result_right}")  # 결과: 512 (오른쪽에서 왼쪽으로 계산: 2 ** (3 ** 2))

if 조건문

if문

if문은 조건이 참인지 거짓인지에 따라 코드의 블록을 실행하거나 건너뛰는 데 사용됩니다. 조건이 참이면 해당 블록의 코드가 실행되고, 거짓이면 건너뜁니다.

if문의 형식

💡 if 조건: # 조건이 참일 때 실행할 코드

if~else 문

if~else문은 조건이 참일 때와 거짓일 때 실행할 코드를 각각 정의할 수 있습니다. 조건이 참이면 if 블록이 실행되고, 거짓이면 else 블록이 실행됩니다.

if~else 문의 형식

💡 if 조건: # 조건이 참일 때 실행할 코드 else: # 조건이 거짓일 때 실행할 코드

다중 if문

다중 if문은 여러 조건을 검사할 때 사용됩니다. if, elif, else를 사용하여 순차적으로 조건을 검사하며, 첫 번째로 참인 조건의 블록이 실행됩니다. 나머지 조건은 검사 되지 않습니다.

다중 if문의 형식

if 조건1:
    # 조건1이 참일 때 실행할 코드
elif 조건2:
    # 조건1이 거짓이고 조건2가 참일 때 실행할 코드
elif 조건3:
    # 조건1과 조건2가 거짓이고 조건3이 참일 때 실행할 코드
else:
    # 위의 모든 조건이 거짓일 때 실행할 코드

중첩 if문

중첩 if문은 하나의 if 블록 안에 또 다른 if문을 작성하여, 조건을 여러 단계로 나누어 검사할 때 사용합니다.

중첩 if문의 형식

if 조건1:
    # 조건1이 참일 때 실행할 코드
    if 조건2:
        # 조건1이 참이고 조건2도 참일 때 실행할 코드
    else:
        # 조건1이 참이고 조건2가 거짓일 때 실행할 코드
else:
    # 조건1이 거짓일 때 실행할 코드
    if 조건3:
        # 조건1이 거짓이고 조건3이 참일 때 실행할 코드
    else:
        # 조건1과 조건3이 모두 거짓일 때 실행할 코드

if문을 while문으로 바꾸는 방법

if문은 조건이 참일 때 한 번만 실행되지만, while문은 조건이 참일 동안 반복적으로 실행됩니다. 따라서 if문을 while문으로 변환하려면, 반복적으로 실행할 코드 블록을 추가하고, 조건이 거짓이 되도록 업데이트하는 것이 필요합니다.

  • if문을 while문으로 변환하는 과정:
    1. while문을 사용하여 반복적으로 실행할 코드 블록을 정의합니다.
    2. 조건을 검사하여 반복을 결정합니다.
    3. 반복 중에 조건을 업데이트하여 종료 조건을 설정합니다.
# if문 예제
num = 1
if num <= 5:
    print(num)

위의 코드를 while문으로 변환하면 다음과 같습니다:

# while문으로 변환한 예제
num = 1
while num <= 5:
    print(num)
    num += 1

위의 코드에서 while문은 num이 5보다 작거나 같은 동안 반복하여 num 값을 출력하고, 각 반복에서 num을 1씩 증가시킵니다.

if문과 in 연산자

in 연산자는 특정 요소가 시퀀스 (리스트, 튜플, 문자열 등) 안에 있는지 여부를 확인하는 데 사용됩니다. if문과 in 연산자를 함께 사용하면 특정 조건을 만족하는지를 간단하게 검사할 수 있습니다.

'banana' in ['apple', 'banana', 'cherry'] 리스트에서 요소의 존재 여부를 확인합니다.
'Hello' in "Hello, World!" 문자열에서 부분 문자열의 존재 여부를 확인합니다.
Person('Alice', 30) in person_list 사용자 정의 객체 리스트에서 객체의 존재 여부를 확인합니다.
'Alice' in {'Alice': 30, 'Bob': 25} 사전에서 키의 존재 여부를 확인합니다.
3 in {1, 2, 3, 4, 5} 집합에서 요소의 존재 여부를 확인합니다.

이 표는 in 연산자가 다양한 자료 구조에서 어떻게 사용되는지를 보여줍니다. 각 예제는 해당 자료 구조에서 in 연산자를 사용하여 요소의 존재 여부를 검사하는 방법을 나타내고 있습니다.

  • if문과 in 연산자의 형식
💡 if 요소 in 시퀀스: # 시퀀스 안에 요소가 있을 때 실행할 코드 else: # 시퀀스 안에 요소가 없을 때 실행할 코드 (선택 사항)
  • if문과 in 연산자 활용 예제
# 리스트 선언
fruits = ['apple', 'banana', 'cherry']

# 요소가 리스트에 있는지 검사
if 'banana' in fruits:
    print("Yes, 'banana' is in the list.")

# 요소가 리스트에 없는 경우
if 'orange' not in fruits:
    print("No, 'orange' is not in the list.")

while not 조건문은 조건문이 거짓일 때까지 반복하는 루프를 의미합니다. 즉, 조건문이 참일 때 루프가 종료됩니다.

  • while not 조건문 예제
python코드 복사
# 변수 초기화
count = 0

# while not 조건문 예제
while not count >= 5:
    print(f"현재 count 값은 {count}입니다.")
    count += 1

print("반복이 종료되었습니다.")

 

728x90
반응형
댓글