본문 바로가기
Base/Python

4. Bool/if 조건문

by 귀멸 2023. 2. 8.

혼공파 19 ~ 25강

1. Boolean 자료형

True   # 참
False  # 거짓

# 비교 연산자
## == / != / < / <= / > / >=

# 논리 연산자
## 단항 not
not True   # False
not False  # True

## 이항 and 
True and True    # True
True and False   # False
False and True   # False
False and False  # False

## 이항 or
True or True    # True
True or False   # True
False or True   # True
False or False  # False

# 날짜/시간 구하는 방법
import datetime
import pytz

seoul = pytz.timezone("Asia/Seoul")
now = datetime.datetime.now(seoul)

print("{}년 {}월 {}일 {}시 {}분 {}초".format(
now.year,
now.month,
now.day,
now.hour,
now.minute,
now.second
))

2. if 조건문의 기본 형태

# if 조건문
## 조건이 True 일 때만 들여쓰기 안쪽의 문장을 실행

파이썬은 들여쓰기를 통해 복합문장(한 덩어리)을 표현한다.

IndentationError : 들여쓰기를 잘못한 경우



if 조건:
  문장
  문장
  문장

if True:
  print("True 입니다!")

if False:
  print("False 입니다!")

# 양수 음수 0인지 판별하는 프로그램
raw_input = input("정수를 입력해주세요: ")
raw_input = int(raw_input)

if raw_input > 0:
  print("양수 입니다.")
if raw_input < 0:
  print("음수 입니다.")
if raw_input == 0:
  print("0 입니다.")

# 오전 오후 구분하는 프로그램
from pytz import timezone
from datetime import datetime
today = datetime.now(timezone('Asia/Seoul'))

if today.hour < 12:
  print("오전입니다!")
if today.hour >= 12:
  print("오후입니다!")

3. 사람의 방식과 컴퓨터의 방식

# 입력
raw = input("정수를 입력해주세요: ")
l = raw[-1]

# 짝수 또는 홀수
## 짝수 : 02468
## 홀수 : 13579
if l == "0" or l == "2" or l == "4" or l == "6" or l == "8":
  print("짝수입니다")

if l == "1" or l == "3" or l == "5" or l == "7" or l == "9":
  print("홀수입니다")


if l in "02468":
  print("짝수입니다")

if l in "13579":
  print("홀수입니다")

# 문자열 연산은 숫자 연산보다 느리다!
raw = int(raw)
if raw % 2 == 0:
  print("짝수입니다")
if raw % 2 == 1:
  print("홀수입니다")

# 컴퓨터에서는 어떻게 생각하는 것이 빠를까를 고민하여 효율적인 코드를 작성하는 것이 중요하다

4. if ~ else / elif 구문

# 홀수 짝수 구분
raw = input("정수를 입력해주세요: ")
raw = int(raw)
if raw % 2 == 0:
  print("짝수입니다")
if raw % 2 == 1:
  print("홀수입니다")

# 짝수라면 홀수가 아니고, 홀수면 짝수가 아니다
if raw % 2 == 0:
  print("짝수입니다")
else:
  print("홀수입니다")

# 양수/ 음수/ 0/  2가지 보다 많은 경우의 수 발생
number = int(input("정수 입력: "))
if number > 0:
  print("양수 입니다")
elif number > 0:
  print("양수 입니다")
else:
  print("0 입니다")
# 봄/여름/가을/겨울
month = int(input("월 입력: "))
if 3 <= month <= 5:
  print("봄 입니다")
elif 6 <= month <= 8:
  print("여름 입니다")
elif 9 <= month <= 11:
  print("가을 입니다")
else:
  print("겨울 입니다")

5. Pass 키워드 / raise NotImplementedError

# None, 숫자 0, 빈 컨테이너, 빈 문자 등 -> False
# bool(0) >> False
# bool("") >> False
# bool("아무 문자열") >> True

# 사용자로부터 입력 
# 입력을 그대로 출력
# 사용자가 아무것도 입력하지 않았다면: "프로그램을 다시 실행해주세요"

i = input("> 입력해주세요: ")
i = i.strip()
# i = input("> 입력해주세요: ").strip()

## 방법 1
if i:
  #프로그램의 주요 기능
  print("입력한 내용:",i)
else:
  # 프로그램의 보완적 기능
  print("프로그램을 다시 실행해주세요")

## 방법 2
if not i == "":
  #프로그램의 주요 기능
  print("입력한 내용:",i)
else:
  # 프로그램의 보완적 기능
  print("프로그램을 다시 실행해주세요")

## 방법 3
if i == "":
  print("프로그램을 다시 실행해주세요")
  exit()
print("입력한 내용:", i)

# Pass Keyword
# 파이썬은 조건문 안에 반드시 복합문장을 넣어줘야 한다. 
# 그렇지 않으면 Error을 띄우기 때문에 조건문 골격만 잡아두고 넘어가기 위해서 Pass 키워드 사용

# raise NotImplementedError
# Pass 처럼 조건문 안에 복합문장을 대신하여 프로그램 에러를 띄우지는 않지만 
# 프로그램을 실행하여 조건문안으로 들어오게 되면 강제로 에러를 띄운다 (아직 구현되지 않았다)

댓글