Python/데이터 전처리

파이썬 기초 - 조건문

강떡볶 2022. 3. 25. 00:25
조건문이란?
  • 참과 거짓을 '판단'하는 문장
  • 조건이 참일 때 다음 문장을 수행

ex) 비교 연산자, 논리 연산자, in / not in 등

 

 

 

조건문이 필요한 이유

"비타민에 합격하면 행복하고, 떨어지면 슬프다."

주어진 조건을 판단 → 해당 주건에 맞게 상황 수행

bitamin = True

if bitamin:
	print("행복하다")
else:
	print("슬프다")

행복하다

 

  • bitamin에 True를 입력했으므로 bitamin은 참
  • 따라서 조건문이 수행되어 '행복하다'가 출력된다

 

 

if문의 기본 구조
if 조건문:
    수행할 문장1
    수행할 문장2
    
else:
    수행할 문장A
    수행할 문장B
    ...

if문은 반복 횟수가 정해져 있을 때 주로 사용한다

 

 

 

들여쓰기(Intent)
  • 가독성을 위한 것
  • 영역을 지정한다는 뜻
  • 문법적인 강제사항
  • Spacebar를 활용한 한 칸, 두 칸, 네 칸 등의 방법이 존재
  • Tab 활용도 하나의 방법
  • 방법은 상관없지만 혼용은 하지 말 것 (오류의 원인이 됨)
  • 요즘 파이썬 커뮤니티에서는 Spacebar 4개를 사용하는 것을 권장함

 

 

if문의 기본 구조
이소연 = True

if 이소연:
    print("안녕하세요")
print("저는")
    print("비타민 6기 교육부를 맡고 있습니다")

 

이소연 = True

if 이소연:
    print("안녕하세요")
    print("저는")
        print("비타민 6기 교육부를 맡고 있습니다")

→ 들여쓰기 오류 발생

 

 

비교 연산자

# 만약 시간이 오후 10시가 넘었다면 참고, 그렇지 않으면 먹어라

hour = 21

if hour >=22:
    print("참아라")
else:
    print("먹어라")

  • hour는 21
  • hour ≥ 22 조건문이 거짓이 되기 때문에 else문 다음 문장을 수행

 

 

논리 연산자

# 시간이 오후 10시가 넘었고 배가 고프지 않다면 참고 그렇지 않으면 먹어라

hour = 23
hungry = True

if hour >= 22 and not hungry:
    print("참아라")
else:
    print("먹어라")

  • hungy가 True이므로 not hungry는 False가 됨
  • 오후 10시가 넘었지만 배가 고프기 때문에 else문 다음 문장을 수행

 

 

in/not in 연산자

# 주머니에 돈이 있으면 떡볶이를 먹고, 없으면 먹지마라

pocket = ['money', 'cellphone', 'paper']

if 'money' in pocket:
    print("떡볶이를 먹어라")
else:
    print("먹지 말아라")

  • pocket 리스트 안에 'money'가 있으므로 'money' in pocket은 참
  • 따라서 if문 다음 문장을 수행

 

# 주머니에 돈이 있으면 떡볶이를 먹고, 주머니에 돈은 없지만 카드가 있으면 먹고, 
#돈도 없고 카드도 없으면 먹지 말아라"

pocket = ['cellphone', 'paper']
card = True

if 'money' in pocket:
    print("떡볶이를 먹어라")
else:
    if card:
        print("떡볶이를 먹어라")
    else:
        print("떡볶이를 먹지 말아라")

  • if와 else만으로 다양한 조건을 판단하기 까다로움
  • 참과 거짓만으로 분류하기에는 한계가 있음
  • 가독성이 좋지 않음
  • 좀 더 간결한 코드를 사용하자!

 

 

elif문
pocket = ['cellphone', 'paper']
card = True

if 'money' in pocket:
    print("떡볶이를 먹어라")
elif card:
    print("떡볶이를 먹어라")
else:
    print("떡볶이를 먹지 말아라")

  • 여러가지 상황(다중 조건) 판단이 가능
  • if문 다음에 또 if문이 필요할 때 사용
  • 가독성을 높임

 

<간단한 숫자 게임 해보기>

num = int(input("1~10 사이의 숫자를 입력해주세요: "))

if num > 5 and num <= 10:
    print("5보다 큽니다")
elif num > 0 and num <= 5:
    print("5보다 작거나 같습니다")
else:
    print("범위를 벗어납니다")

 

<간단한 음료수 자판기 만들어보기>

button = int(input("버튼을 눌러주세요: "))

if button == 1:
    print("콜라")
elif button == 2:
    print("사이다")
elif button == 3:
    print("환타")
else:
    print("제공하지 않는 메뉴")

 

 

 

중첩 조건문
  • if 조건문 안에 if 조건문이 있는 것
  • 논리연산자로 두 가지 이상 조건을 묶어 평가 가능

1) 나이와 점수를 입력 받는다

2) 합격 조건을 중첩 조건문으로 나타낸다

   -나이가 20살 이상

   -점수는 80점 이상

age = int(input("나이를 입력하세요 :"))
score = int(input("점수를 입력하세요 :"))

if age >= 20 :
    if score >= 80:
        print("합격입니다!")
    else:
        print("점수가 낮아 불합격입니다")
else:
    print("너무 어려서 불합격입니다!")