본문 바로가기
Python

파이썬 if 조건문

by Hunger 2023. 7. 3.
반응형

1. 조건문

조건문에는 조건 연산이 포함되고 조건 연산으로 비교 연산과 논리 연산을 사용할 수 있습니다. 간단한 조건문은 삼항 연산자를 통해 가볍게 사용할 수 있지만, 일반적으로 사용되는 파이썬 제어문에는 if 문, while 문, for 문 등이 있습니다.

if 문과 같은 조건문은 조건 분기문이라고도 합니다. 이는 프로그램이 실행되는 과정에서 조건에서의 판단에 따라 처리하는 경로를 달리 하기 때문입니다. 이때 조건 분기문은 선택지들 중 오직 한가지만 실행합니다. 조건 분기문은 일반적으로 조건 판단의 결과가 거짓이면 조건이 거짓일 때 실행하는 코드를 거쳐 다음으로 넘어갑니다.

2. if 문

1) if 문

기본적인 if 문의 구조는 다음과 같습니다.
[if 문의 형식]
if 조건식:
조건식이 참이면 실행할 코드

이때 if 조건식 뒤에는 콜론( : )을 붙이고, 하나의 구조임을 나타내기 위해 들여쓰기를 스페이스 바 4번 또는 한 번의 Tab를 한 후 실행할 코드를 작성합니다. 이는 파이썬은 여러 실행문의 묶음인 블럭을 들여쓰기로 구분하기 때문입니다. 따라서 해당 블럭 밖으로 나오기 위해서는 들여쓰기를 지우면 됩니다.

 

Code

import sys
yourName = input("Type your name")
if len(yourName) == 0:
    print("There is no input")
    sys.exit()
print("Your name is {} and {} words.".format(yourName, len(yourName)))

2) if.else 문

기본적인 if 문은 입력값이 참일 경우에만 실행하고, 거짓인 경우에 대해서는 동작하지 않습니다. 이와 달리 if.else 문은 입력값이 조건식에 대해 참인 경우와 거짓인 경우를 모두 설정하여 조건 판단 결과에 따라 분기되도록 합니다. if.else 문의 형식은 다음과 같습니다.
[if.else 문의 형식]
if 조건식:
조건식이 참이면 실행할 코드
else:
조건식이 거짓이면 실행할 코드

if.else 문을 구현하는 방법은 기본적인 if.else 문을 구현하는 방법은 기본적인 if 문과 마찬가지로 먼저 if 조건식을 작성하고 콜론( : ) 부호를 붙인 후 아랫줄에 조건 판단이 참일 때 실행할 코드를 작성합니다. 그리고 그 아래에 들여쓰기 없이 else:를 작성하고 다시 그 아랫줄에 조건 판단이 거짓일 때 실행할 코드를 작성하면 됩니다.

 

Code

number = int(input("input number : "))
print(number, ":", end="")
if number%2 == 0:
    print("even")
else:
    print("odd")

3) 다중 if.else 문

만약 조건문에 포함될 선택지가 단순히 참과 거짓이 아닌 더 복잡하게 나뉜다면 if.else 문만으로는 나타내기 어렵습니다. 이때 사용하는 것이 다중 if.else 문입니다. 다중 if.else 문 형식은 다음과 같습니다.
[다중 if.else 문의 형식]
if 조건1:
조건1이 참일 때 실행할 코드
elif 조건2:
조건2가 참일 때 실행할 코드
elif 조건N:
조건N이 참이면 실행할 코드
else:
위 모든 조건에 해당되지 않을 때 실행할 코드

다중 if.else 문은 if.else 문에서 if 문과 else 문을 넣으면 됩니다. 각 elif 문의 조건식 밑에는 해당 조건식이 참일 때 실행할 코드를 들여쓰기하여 작성하면 됩니다.

 

Code

yourGrade = int(input("type your score : "))
grade = 'F'
if yourGrade >= 90:
    grade = 'A'
elif yourGrade >= 80:
    grade = 'B'
elif yourGrade >= 70:
    grade = 'C'
elif yourGrade >= 60:
    grade = 'D'
else:
    grade = 'F'
print("Your score is {} and your grade is {}".format(score, grade))
반응형

댓글