[파이썬] 조건문

컴공생의 코딩 일기·2021년 8월 2일
0

파이썬

목록 보기
11/17
post-thumbnail
post-custom-banner

목차

  • if문 (else)
  • if문 사용 방법
  • if ~ elif ~ else 사용 방법

if문 (else)

if: 조건식이 True 이며 실행

else: if 조건문에서 조건식이 False 이면 실행

조건문은 들여 쓰기를 구분합니다.

** 들여 쓰기: 일반적으로는 들여 쓰기를 사용하는 이유는 코드를 보기 좋게 이쁘게 하기 위해 들여 쓰기를 사용하지만 파이썬은 들여 쓰기가 문법화 되어 있습니다. 즉 파이썬은 맘대로 들여 쓰기를 해서는 안 됩니다.

if문 사용 방법

if 조건식:
else:

if 문은 조건식을 정의한 후 콜론(:)을 적어주시면 됩니다.
else는 if 조건식이 False 일 때 실행되는 문법입니다. else는 조건식이 없고 그냥 else 뒤에 콜론(:)을 적어주시면 됩니다.

# if문 기본 사용법
if True:
    print('True 이면 실행된다.')

if False:
    print('False 이면 실행이 되지 않는다.')
    
# 성인인지 판단하는 문제
# 성인 기준을 20살 부터 
age = 25

if age >= 20:  # age가 20보다 크거나 같을 경우
    print('성인입니다!')
else:  # 아닐 경우
    print('미성년자입니다!')

출력결과:
성인입니다!

if ~ elif ~ else 사용방법

elif문은 여러 개의 조건을 사용하고 싶을 때 사용하는 문법입니다.
if문에서 조건이 False라면 elif문에서 다시 조건을 검사하고 True 이면 elif을 실행하고 Flase 라면 else로 넘어갑니다. 다른 언어를 배우신 분이시라면 else if로 헷갈리실 수 있습니다. 파이썬에서는 elif로 사용합니다! elif를 여러 개 사용 가능합니다.

예제) 등급 나누기 예제

score = 95

if 90 <= score <= 100:
    grade = 'A'
elif 80 <= score:
    grade = 'B'
elif 70 <= score:
    grade = 'C'
elif 0 <= score:
    grade = 'D'

print(f'점수 {score}점, 등급 {grade}')

출력 결과:
점수 95점, 등급 A

여기서 의문점이 생기신 분이 있을 거 같습니다. if문을 여러 개 사용해도 될 거 같은데 왜 elif로 사용하는지 말이죠. 결론부터 말씀드리면 if문을 사용해도 같은 결과 값이 나옵니다. 하지만 코드가 너무나 비효율적입니다.

위에 예제로 if문을 사용해 만들어 보겠습니다.

score = 95

if 90 <= score <= 100:
    grade = 'A'
if 80 <= score < 90:
    grade = 'B'
if 70 <= score < 80:
    grade = 'C'
if 0 <= score < 70:
    grade = 'D'
print(f'점수 {score}점, 등급 {grade}')

위에 코드를 보시면 elif문을 사용했을 때와 if문만 사용했을 때와 코드를 비교해보면 코드 갯수가 차이 나는걸 알 수 있습니다. if문과 elif문에 차이점은 여러 개의 if문을 사용했을 때 if문은 각자 다른 if문입니다. 즉 그렇기 때문에 처음 if문부터 마지막 if문까지 모두 검사를 합니다. 만약 처음 if문이 True이라면 거기서 조건문이 종료되는 게 아니라 마지막 if문 실행까지 모두 검사를 해야 종료됩니다. 그렇기 때문에 if문을 사용하면 각 if문마다 조건식을 정확히 정해줘야 합니다. elif일 경우 elif는 if문에 속해있는 조건문입니다. 그렇기 때문에 만약 if문이 나 elif문 중 어느 하나라도 결과가 True이라면 그 자리에서 조건 검사가 종료됩니다. 그렇기 때문에 조건식 연산 코드도 간결해지는 이유입니다.

이상으로 파이썬에 조건문에 대해서 알아봤습니다. 잘못된 부분이나 부족한 부분 있으면 피드백 감사하겠습니다!!!

profile
더 좋은 개발자가 되기위한 과정
post-custom-banner

0개의 댓글