Python 정리

파이썬 - 제어문과 조건식

dawon-project 2025. 2. 1. 19:42

조건식이란? 계산 결과로 반환되는 값이 True(참) 또는 False(거짓)인 식

논리형(Boolean) : 참과 거짓을 표현하는 자료형

연산 결과가 True 또는 False인 연산자 : 비교 연산자, 논리 연산자

 

비교연산자

  • 비교에 사용하는 연산자
  • <, >, <=, >=, ==, !=
  • 비교 연산자 왼쪽과 오른쪽의 피연산자를 비교
  • 결과는 항상 True 혹은 False
  • 조건식은 비교 연산자를 사용하여 구성

 

논리 연산자

  • AND 연산자와 OR 연산자 결과
    • AND 연산자 : 피연산자가 모두 참(True, 1)일 때만 True, 그외는 모두 False
    • OR 연산자 : 피연산자가 모두 거짓(False, 0)일 때만 False, 그 외는 모두 True

  • NOT 연산자 : True는 False로, False는 True로 뒤집는 연산자

**연산자 우선 순위 : 괄호 > 산술 연산자 > 비교 연산자 > 논리 연산자

드모르간의 법칙(De Morgan's Law) : 논리식의 부정을 간편하게 나타낼때 사용하는 법칙

  1. not ( A and B) 는 ( not A ) or ( not B)와 동일하다.
  2. not ( A or B ) 는 ( not A ) and ( not B) 와 동일하다

2진수 비트

  • 정수형 데이터는 컴퓨터 내부에서 이진수(Binary) 형태로 저장된다. 
  • 예를 들어, 10진수 13은 이진수로 1101이며, 이를 비트(bit)의 집합으로 볼 수 있다.
    • 2진수 표기 : 보통 파이썬에서 bin(13) -> '0b1101'
    • 각 자리(bit)에서 1은 켜짐, 0은 꺼짐 상태를 의미
  • 비트 연산이란? 이진수 상태에서 각 비트를 AND, OR, XOR 등으로 연산하는 것을 말함
    -> 연산 속도가 빨라 자주 사용한다.

비트 논리 연산자

  • &(AND) : 두 비트가 모두 1이면 결과 1
  • | (OR) : 두 비트 중 하나라도 1이면 결과 1
  • ^(XOR) : 두 비트가 서로 다를 때 1
  • ~(NOT) : 비트를 반전(0 -> 1, 1 -> 0)

 

비트 시프트 연산자

  • << : 왼쪽 시프트 -> 2의 배로 곱해진 효과
  • >> : 오른쪽 시프트(Right Shift) -> 2로 나눈 효과 (정수 부분만)

 

삼항 연산자(Ternary Operator)

  • 파이썬에는 아래와 같은 한 줄 짜리 삼항(조건) 연산자 문법이 있다.

 

조건이 참이면 if와 else 사이의 값을 결과로 하고, 조건이 거짓이면 else 뒤의 값을 결과로 한다.

 

in 연산자

  • 파이썬에서 in을 사용하면, 어떤 요소가 시퀀스(리스트, 튜플, 문자열 등)에 포함되어 있는지를 간단히 확인 할 수 있다.

제어문이란? 

  • 프로그램의 흐름을 제어하는 구문
  • 기본 프로그램의 흐름 : 위에서 아래로 순차적 실행
  • 선택적으로 실행하거나 반복해서 실행하는 듯 흐름의 제어 발생
  • 종류 : 조건문, 반복문

조건문(if 문)의 필요성

자판기를 생각해보자. 자판기는 우리가 넣은 돈이 상품 가격보다 많거나 같으면 상품을 제공하고, 적으면 제공하지 않는다. 이처럼 주어진 조건을 판단하고, 그에 따라 다른 동작을 해야할때 프로그래밍에서는 if 문을 사용한다

 

if 문의 기본 구조

-> if, elif, else 3가지를 조합해 다양한 상황을 처리할 수 있다.

**주의 : if 문 뒤에는 반드시 콜론(:)을 붙이고, 다음 줄부터는 들여쓰기를 통해 범위를 구분해야한다.

 

반복문 

  • 반복문은 프로그래밍에서 어떤 작업을 여러 번 반복해서 수행할 수 있게 해주는 중요한 도구
  • 반복문 내에서 변수가 선언되고 반복문이 종료되어도 전역변수로써 사용 가능 ->   지역변수 => 전역변수(반복문 종료시)

for 반복문 -> 반복 횟수가 정해진 경우 사용 

 

Zip 함수

  • 여러 iterable 객체(리스트, 튜플 등)를 묶어서 동시에 순회할 수 있게 해주는 도구

주의점, 참고사항 : Zip은 길이가 다른 리스트를 입력받으면 짧은 쪽에 맞춰 순회를 멈춘다.

 

list comprehension, zip 활용 예제

 

while 반복문 -> 반복 횟수를 알 수 없을때 사용

continue -> 반복의 처음으로 돌아가는 키워드

-> continue 문을 만나면 아래의 코드블록은 실행 안함

 

break -> 반복을 종료하는 키워드 

-> break 문을 만나면 반복문을 중단하고 반복문 외부 코드를 이어서 실행