조건문 if
조건에 따라 다른 프로그램 코드를 실행
▶ 사용 예시
- 만약 점수가 80점 이상이면 합격이고 80점 미만이면 불합격이다.
- 만약 나이가 65세 이상일 경우에는 입장료가 무료이다.
- 주민번호 앞자리가 1이면 남성이다.
- 비밀번호가 맞으면 로그인한다.
▶ 실행 예시
기본적으로 if 다음에는 클론(:) 다음줄의 실행문은 들여쓰기를 사용한다.
if :
실행문 1
else :
실행문 2
if True :
print("참입니다.")
else :
print("거짓입니다.")
# 참입니다.
if False :
print("참입니다.")
else :
print("거짓입니다.")
# 거짓입니다.
a = 10
if a == 10 :
print("true")
else :
print("false")
# true
▶ 금액을 입력받아 택시와 버스 선택하기
money = int(input("금액을 입력하세요 : "))
if money > 5000 :
print("%d원으로는 택시를 탄다." % money)
else :
print("%d원으로는 버스를 탄다." % money)
# 금액을 입력하세요 : 2320
# 2320원으로는 버스를 탄다.
▶ 나이와 키를 입력받아 큰 키, 작은 키 구별하기.
age = int(input("나이를 입력하세요 : "))
height = int(input("키를 입력하세요 : "))
if age >= 40 :
if height >= 170 :
print("큰 키")
else :
print("작은 키")
else :
if height >= 175 :
print("큰 키")
else :
print("작은 키")
# 나이를 입력하세요 : 98
# 키를 입력하세요 : 170
# 큰 키
다양한 조건을 판단하는 elif
여러 조건을 판단해야 할 경우 elif를 사용한다.
elif를 사용하는데는 개수에 제한이 없다.
▶ 숫자를 입력받아 음수 양수 계산하여 출력하기
num = int(input("숫자를 입력하세요 : "))
if num > 0 :
print("%d(은)는 양수입니다." % num)
elif num < 0 :
print("%d(은)는 음수 입니다." % num)
else :
print("0입니다.")
# 숫자를 입력하세요 : 23
# 23(은)는 양수입니다.
▶ 시험 점수를 입력 받아 랭크 판별하기.
score = int(input("시험점수를 입력하세요."))
if score >= 90 :
rank = "A"
elif 80 <= score < 90 :
rank = "B"
elif 70 <= score < 80 :
rank = "C"
elif 60 <= score < 70 :
rank = "D"
else :
rank = "F"
print(rank)
# 시험점수를 입력하세요.20
# F
▶ 열차 좌석 일반실, 특실
seat = int(input("좌석 종류를 입력하세요.(1:일반실, 2:특실) : "))
if seat == 1 :
msg = "일반실"
elif seat == 2 :
msg = "특실"
else :
msg = "에러"
print("%s 입니다." % msg)
# 좌석 종류를 입력하세요.(1:일반실, 2:특실) : 2
# 특실 입니다.
▶ 서비스 만족도에 따른 팁 계산
print("서비스 만족도 \n 1 : 매우만족 \n 2 : 만족 \n 3 : 서비스 불만족")
satis = int(input("만족도 입력 (1, 2, 3) : "))
pay = int(input("음식값 입력 (예 : 8000) : "))
if satis == 1 :
msg = "매우만족"
tip = pay * 0.2
elif satis == 2 :
msg = "만족"
tip = pay * 0.1
elif satis == 3 :
msg = "불만족 서비스"
tip = pay * 0.05
print("서비스 만족도 : %s, 팁 : %d원" % (msg, tip))
# 서비스 만족도
# 1 : 매우만족
# 2 : 만족
# 3 : 서비스 불만족
# 만족도 입력 (1, 2, 3) : 1
# 음식값 입력 (예 : 8000) : 7000
# 서비스 만족도 : 매우만족, 팁 : 1400원
논리 연산자를 활용한 흐름 제어
or, and, not
연산자 | 설명 |
x or y | x와 y의 조건이 모두 만족할 때 참을 반환한다. |
x and y | x와 y의 조건 중 하나라도 만족 하면 참을 반환한다. |
not x | x의 조건이 거짓이면 참을 반환한다. |
▶ 나이와 키를 입력받아 큰 키, 작은 키 구별하기.
age = int(input("나이를 입력하세요 : "))
height = int(input("키를 입력하세요 : "))
if age >= 40 and height >= 170 :
print("큰키")
elif age >= 45 and height >= 175 :
print("큰키")
elif height >= 180:
print("큰키")
else :
print("작은키")
# 나이를 입력하세요 : 11
# 키를 입력하세요 : 190
# 큰키
▶ 필기성적과 실기성적을 입력받아 합격, 불합격 여부 판단하기.
wScore = int(input("필기성적을 입력하세요 : "))
aScore = int(input("실기성적을 입력하세요 : "))
if wScore >= 80 and aScore >= 80 :
msg = "합격"
else :
msg = "불합격"
print(msg)
# 필기성적을 입력하세요 : 24
# 실기성적을 입력하세요 : 1
# 불합격
▶ not
name = input("이름을 입력하세요 : ")
if not name :
print("이름이 입력되지 않았다.")
else :
print("이름 : %s" % name)
# 이름을 입력하세요 : 홍길동
# 이름 : 홍길동
▶ 입장료 확인
age = int(input("나이를 입력하세요 : "))
pay = "3000원"
if age >= 65 or age < 7 :
pay = "무료"
print("입장료 %s" % pay)
# 나이를 입력하세요 : 23
# 입장료 3000원
x in s, x not in s
s에는 리스트, 튜플, 문자열만 들어갈 수 있다.
문장 | 설명 |
x in s | x가 s에 포함되어 있으면 참을 반환한다. |
x not in s | x가 s에 포함되어 있지 않으면 참을 반환한다. |
▶ 계절을 확인한다.
month = int(input("월을 입력하세요 : "))
spring = [3, 4, 5]
summer = [6, 7, 8]
autumn = [9, 10, 11]
winter = [1, 2, 12]
if month in spring :
msg = "Spring"
elif month in summer :
msg = "Summer"
elif month in autumn :
msg = "Autummn"
elif month in winter :
msg = "Winter"
else :
msg = "not a weather."
print("%dmonth is %s" % (month, msg))
# 월을 입력하세요 : 4
# 4month is Spring
▶ 알파벳의 자음 모음 판별.
alpha = input("알파벳 하나를 입력하세요 : ").upper()
consonant = ["B", "C", "D", "F", "G", "H", "I", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "V", "W", "X", "Y", "Z"]
vowels = ["A", "E", "I", "O", "U"]
if alpha in consonant :
msg = "consonant"
elif alpha in vowels :
msg = "vowels"
else :
msg = "error"
print("%s is %s" % (alpha, msg))
# 알파벳 하나를 입력하세요 : s
# S is consonant
해당 조건이 참이여도 그냥 넘어가는 Pass
pass는 조건문의 참, 거짓에 따라 실행할 행동을 정의 할 때 아무런 일도 하지 않도록 설정할 수 있다.
▶ 선수를 입력받아 전설인지 아닌지 판별하기.
legend = ["손흥민", "박지성", "차범근"]
Player = input("선수를 입력하세요 : ")
if Player in legend :
print("%s는(은) 전설이 맞다" % Player)
else :
pass
# 선수를 입력하세요 : 레반도프스키
#
# 설명 : 레반도프스키는 legend에 포함되어 있지 않다.
if문을 한 줄로 작성하기
수행할 문장이 한 줄일 때 조금 더 간략하게 코드를 작성하는 방법이 있다.
▶ 숫자를 입력받아 홀수, 짝수 판별하기
su = int(input("숫자를 입력하세요 : "))
if (su%2) == 0 : print("짝수입니다.")
else : print("홀수입니다.")
# 숫자를 입력하세요 : 2
# 짝수입니다.
조건부 표현식
조건부 표현식은 가독성에 유리하고 한 줄로 작성 할수 있어 활용성이 좋다.
조건문이 참인 경우 if 조건문 else 조건문이 거짓인 경우
▶ 평점을 입력받아 장학금 대상 선별하기
grade = float(input("평점을 입력하세요 : "))
msg = "장학금 수여 대상" if grade > 4.3 else "수상 대상자가 아닙니다."
print(msg)
# 평점을 입력하세요 : 1
# 수상 대상자가 아닙니다.
▶ 숫자를 입력받아 짝수, 홀수 판별하기
num = int(input("숫자를 입력하세요 : "))
msg = "짝수입니다." if (num%2) == 0 else "홀수 입니다."
print(msg)
# 숫자를 입력하세요 : 4231424231
# 홀수 입니다.
▶ 필기성적과 실기성적을 입력받아 합격, 불합격 여부 판단하기.
wScore = int(input("필기성적을 입력하세요 : "))
aScore = int(input("실기성적을 입력하세요 : "))
msg = "합격" if wScore >= 80 and aScore >= 80 else "불합격"
print(msg)
# 필기성적을 입력하세요 : 10
# 실기성적을 입력하세요 : 10
# 불합격
▶ 홈페이지 관리자 여부
ID = input("아이디를 입력하세요 : ")
LV = int(input("회원레벨을 입력하세요 : "))
msg = "관리자입니다." if ID=="admin" or LV==1 else "관리자가 아닙니다."
print(msg)
# 아디디를 입력하세요 : admin
# 회원레벨을 입력하세요 : 12
# 관리자입니다.
▶ 비밀번호 확인
passnum = "12345"
password = input("비밀번호를 입력하세요 : ")
print("OK!") if password == passnum else print("NO!")
# 비밀번호를 입력하세요 : 12345
# OK!
종합 예제
▶ 현재 년, 월, 일과 출생 년, 월, 일을 입력받아 만 나이를 계산하시오.
year = int(input("현재년을 입력하세요 : "))
month = int(input("현재월을 입력하세요 : "))
day = int(input("현재 일을 입력하세요 : "))
bornYear = int(input("출생년을 입력하세요 : "))
bornMonth = int(input("출생월을 입력하세요 : "))
bornDay = int(input("출생일을 입력하세요 : "))
print("-" *50)
print("오늘 날짜 : %d년 %d월 %d일\n생년월일 : %d년 %d월 %d일" % (year, month, day, bornYear, bornMonth, bornDay))
print("-" *50)
manOrder = 0
if bornMonth < month :
manOrder = year - bornYear
elif bornMonth == month and bornDay <= day :
manOrder = year - bornYear
elif bornMonth == month and bornDay > day :
manOrder = year - bornYear - 1
elif bornMonth > month :
manOrder = year - bornYear - 1
print("만 나이 : %d세" % manOrder)
# 현재년을 입력하세요 : 2022
# 현재월을 입력하세요 : 8
# 현재 일을 입력하세요 : 25
# 출생년을 입력하세요 : 1998
# 출생월을 입력하세요 : 11
# 출생일을 입력하세요 : 10
# --------------------------------------------------
# 오늘 날짜 : 2022년 8월 25일
# 생년월일 : 1998년 11월 10일
# --------------------------------------------------
# 만 나이 : 23세
'Python' 카테고리의 다른 글
[Python] 반복문 while (0) | 2022.08.29 |
---|---|
[python] 반복문 for (0) | 2022.08.26 |
[Python] 문자열 형식화, 문자열 함수 (0) | 2022.08.24 |
[Python] Tuple(튜플) (0) | 2022.08.24 |
[Python] Set(집합) (0) | 2022.08.24 |