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("너무 어려서 불합격입니다!")