Python

[python] 조건문 if

SangRok Jung 2022. 8. 25. 22:19
반응형

조건문 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