조건문은 코드의 실행 흐름을 제어하기 위해 사용하는 구문입니다. 이 조건문은 주어진 조건이 참인지 거짓인지에 따라 다른 코드를 실행하게 합니다.
가장 기본적인 조건문입니다. 특정 조건이 참(True)일 경우에만 해당 블록 내의 코드가 실행됩니다.
if 조건:
실행할 코드
여기에서 조건은 True 또는 False로 평가될 수 있는 표현식이어야 합니다. 조건이 True로 평가되면 if 문 바로 아래의 코드 블록이 실행됩니다. 그렇지 않으면 그 코드 블록은 건너뜁니다.
if True:
print('결과는 참입니다')
print('프로그램을 종료합니다')
if False:
print('결과는 참입니다')
print('프로그램을 종료합니다')
if '안녕하세요':
print('결과는 참입니다')
print('프로그램을 종료합니다')
if '':
print('결과는 참입니다')
print('프로그램을 종료합니다')
if '안녕하세요':print('결과는 참입니다')
print('프로그램을 종료합니다')
if '':print('결과는 참입니다')
print('프로그램을 종료합니다')
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
print('입력한 나이: ', age)
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있습니다')
print('입력한 나이: ', age)
else 문은 조건문에서 특정 조건이 충족되지 않을 때 실행할 코드 블록을 정의할 때 사용합니다.
if 조건:
코드 블록1
else:
코드 블록2
age = int(input('나이를 입력하세요'))
if age > 19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있어요')
else:
print('미성년입니다')
print('디즈니플러스를 보세요')
print('입력한 나이: ', age)
elif는 if-else 구조에서 추가적인 조건을 검사하기 위해 사용합니다. elif는 "else if"의 줄임말이며, 주어진 여러 조건 중에서 하나만 참일 때 실행되는 코드 블록을 정의합니다.
- elif는 if 없이 단독으로 사용될 수 없습니다.
- elif는 필요에 따라 여러 번 사용될 수 있습니다.
- else는 선택적입니다. 사용될 경우, 항상 if나 elif 뒤에 나타나야 합니다.
if 조건1:
코드 블록1
elif 조건2:
코드 블록2
elif 조건3:
코드 블록3
else:
코드 블록4
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
elif age > 14:
print('청소년입니다')
elif age > 6:
print('어린이입니다')
elif age > 0:
print('유아입니다')
# else:
# print('입력을 확인하세요')
print('입력한 나이: ', age)
# 아이디 길이 체크하기
# Walrus Operator(x := expression)
# expression을 계산한 값을 x에 할당하고, 동시에 그 값을 사용합니다.
text = input("아이디를 입력하세요: ")
if (length := len(text)) < 3:
print(f"아이디가 너무 짧습니다. (입력한 글자 수: {length})")
else:
print(f"아이디 '{text}'는 사용 가능합니다.")
# 로그인 프로그램 만들기
# 아이디: admin, 비밀번호: 1234
userid = input('아이디를 입력하세요')
userpw = input('비밀번호를 입력하세요')
if userid == 'admin' and userpw == '1234':
print('로그인 되었습니다')
else:
print('아이디 또는 비밀번호를 확인하세요')
# 주민등록번호에 의한 성별을 판별하는 프로그램 만들기
# 0010113068518
juminNo = input('주민등록번호 13자리를 -없이 입력하세요')
if juminNo[6] == '1' or juminNo[6] == '3' or juminNo[6] == '5' or juminNo[6] == '7' or juminNo[6] == '9':
print('남자')
else:
print('여자')
print("MBTI 간단 성격 유형 검사에 오신 걸 환영합니다!")
# 첫 번째 질문: 외향/내향
answer1 = input("Q1. 새로운 사람들과 만나는 걸 좋아하시나요? (y/n): ")
if answer1.lower() == 'y':
# 외향형으로 진행
print("외향형으로 분석 중...")
answer2 = input("Q2. 주변 환경에 대해 자주 인지하고 있나요? (y/n): ")
if answer2.lower() == 'y':
# 감각형(외향, 감각)
answer3 = input("Q3. 계획을 세우는 것을 좋아하시나요? (y/n): ")
if answer3.lower() == 'y':
print("당신의 성격 유형은 ESTJ입니다!")
else:
print("당신의 성격 유형은 ESFP입니다!")
else:
# 직관형(외향, 직관)
answer3 = input("Q3. 큰 그림을 보는 것을 좋아하시나요? (y/n): ")
if answer3.lower() == 'y':
print("당신의 성격 유형은 ENFP입니다!")
else:
print("당신의 성격 유형은 ENTJ입니다!")
else:
# 내향형으로 진행
print("내향형으로 분석 중...")
answer2 = input("Q2. 구체적인 정보나 사실을 중요하게 생각하시나요? (y/n): ")
if answer2.lower() == 'y':
# 감각형(내향, 감각)
answer3 = input("Q3. 일정을 엄격하게 관리하는 것을 좋아하시나요? (y/n): ")
if answer3.lower() == 'y':
print("당신의 성격 유형은 ISTJ입니다!")
else:
print("당신의 성격 유형은 ISFP입니다!")
else:
# 직관형(내향, 직관)
answer3 = input("Q3. 논리적인 문제 해결을 좋아하시나요? (y/n): ")
if answer3.lower() == 'y':
print("당신의 성격 유형은 INTP입니다!")
else:
print("당신의 성격 유형은 INFJ입니다!")
조건부 표현식은 파이썬에서 삼항연산자라고도 불립니다. 간단한 if-else 구문을 더 간결하게 표현할 수 있는 방법을 제공합니다. 조건부 표현식은 코드를 간결하게 만들어주지만, 너무 복잡한 조건이나 연산을 포함하면 코드의 가독성이 떨어질 수 있습니다. 따라서 적절한 상황에서만 사용하는 것이 좋습니다.
조건이 참인 경우 값 if condition else 조건이 거짓인 경우 값
# if~else로 작성
num = int(input('숫자를 입력하세요: '))
if num % 2 == 0:
print('짝수')
else:
print('홀수')
# 조건부 표현식으로 작성
num = int(input('숫자를 입력하세요: '))
print('짝수') if num % 2 == 0 else print('홀수')
# if~elif~else로 작성
age = int(input('나이를 입력하세요'))
if age > 19:
print('성인입니다')
elif age > 14:
print('청소년입니다')
elif age > 6:
print('어린이입니다')
elif age > 0:
print('유아입니다')
else:
print('다시 입력해주세요')
print('입력한 나이: ', age)
# 조건부 표현식으로 작성
age = int(input('나이를 입력하세요'))
print('성인입니다') if age > 19 else print('청소년입니다') if age > 14 else print('어린이입니다') if age > 6 else print('유아입니다') if age > 0 else print('다시 입력해주세요')
파이썬에서 if-elif-else 구문을 좀 더 간결하고 읽기 쉽게 만든 새로운 분기문입니다. Java/C의 switch-case와 비슷하지만 훨씬 더 강력한 기능을 가집니다.
match 값:
case 패턴1:
실행할 코드1
case 패턴2:
실행할 코드2
case _:
기본 실행 코드 (default)
month = int(input("월을 입력하세요 (1~12): "))
match month:
case 1 | 3 | 5 | 7 | 8 | 10 | 12:
print(f"{month}월은 31일까지 있습니다.")
case 4 | 6 | 9 | 11:
print(f"{month}월은 30일까지 있습니다.")
case 2:
print("2월은 28일 또는 윤년이면 29일까지 있습니다.")
case _:
print("잘못된 월입니다. 1~12 사이의 숫자를 입력해주세요.")
blood = input("혈액형을 입력하세요 (A, B, AB, O): ").upper() # 대소문자 구분 없이 입력
match blood:
case "A":
print("A형은 꼼꼼하고 성실한 성격이 많습니다.")
case "B":
print("B형은 자유롭고 창의적인 성격이 많습니다.")
case "AB":
print("AB형은 이성과 감성을 모두 가진 복합형입니다.")
case "O":
print("O형은 외향적이고 리더십이 강한 편입니다.")
case _:
print("잘못된 혈액형입니다. A, B, AB, O 중 하나를 입력하세요.")
user = ("김사과", 20)
match user:
case (name, age) if age > 19:
print(f"{name}님은 성인입니다.")
case (name, age) if age > 15:
print(f"{name}님은 청소년입니다.")
case (name, age) if age > 6:
print(f"{name}님은 어린이입니다.")
case _:
print(f'{name}님은 유아입니다.')
# scores = [95, 88, 76]
# scores = (95, 88, 76)
scores = {"국어":95, "영어":88, "수학":76}
match scores:
case [korean, english, math]:
print(f"1. 국어: {korean}, 영어: {english}, 수학: {math}")
case (korean, _, math):
print(f"2. 국어: {korean}, 수학: {math}")
case {"국어": korean, "영어": english, "수학": math}:
print(f"3. 국어: {korean}, 영어: {english}, 수학: {math}")