코딩도장_Unit 13. if 조건문으로 특정 조건일 때 코드 실행하기

김민주·2021년 12월 30일
0

AIFFEL_풀잎스쿨

목록 보기
5/23
post-thumbnail

조건문은 특정 조건일 때 코드를 싱행하는 문법이다. 다양한 상황에 대처할 때 사용하게 된다.

📎 참고) 의사 코드
의사코드(pseudo code) : 실제 프로그래밍 언어가 아닌 사람의 언어로 프로그래밍 언어를 표현한 것. 보통 특정 프로그래밍 언어를 사용하지 않고 알고리즘이나 컴퓨터 명령을 기술할 때 사용

x = 10    # 파이썬 코드
변수 x에 10 할당    # 한글로 표현한 의사 코드

13.1 if조건문 사용하기

if조건문은 if에 조건문을 지정하고 콜론(:)을 붙인 후 다음 줄에 실행할 코드가 온다. 이때 실행할 코드는 반드시 들여쓰기를 해야 한다.

if 조건식:
     코드

IDLE의 파이썬 셸에서는 자동으로 들여쓰기가 되지만 콘솔(터미널, 명령 프롬프트)에서 실행한 파이썬 셸에서는 자동으로 들여쓰기가 되지 않는다.

13.1.1 if조건문의 기본 형태와 실행 흐름 알아보기

if X == 10:  # 변수 x에 10을 할당한 뒤 if조건문으로 10과 같은지 검사한다.
    print('10입니다.')  # 10과 같다면 print가 실행된다.

들여쓰기를 한 뒤 조건실이 만족할 때 실행할 코드를 넣는다. 특히 이 조건식이 만족할 때 실행할 코드를 if본문(if body)이라고 부른다.

보통 if의 조건식이 만족하면 참(True), 만족하지 않으면 거짓(False)이라고 부른다.

13.1.2 if조건문을 사용할 때 주의점

  1. 값을 비교할 때는 =을 2개 붙여서 ==로 사용해야 한다. 만약 if=을 사용하면 문법 에러(SyntaxError)가 발생한다.
    (=의 경우 할당한다는 의미로 사용하고 있다.)
>>> if x = 10: 
  File "<stdin>", line 1
    if x = 10:
         ^
SyntaxError: invalid syntax 
  1. 조건식 끝에 :을 빠뜨리는 경우도 자주 발생한다.
>>> if x == 10  
  File "<stdin>", line 1
    if x == 10
             ^
SyntaxError: invalid syntax 

13.1.3 if조건문에서 코드를 생략하기

if x == 10:
    pass    # TODO: x가 10일 때 처리가 필요함

if 다음 줄에 pass라는 키워드를 넣는다. 여기서 pass는 아무 일도 하지 않고 그냥 넘어간다는 뜻이다. 아무 코드도 넣지 않으면 에러가 발생하므로 if조건문의 형태를 유지하기 위해 사용한다. pass는 나중에 작성해야 할 코드를 표시할 때 사용할 수 있다.

📎 참고) TODO
TODO는 해야 할 일이라는 뜻인데 보통 주석에 넣는다. 이렇게 넣어두면 검색으로 쉽게 찾을 수 있다. 주석에 TODO 외에도 FIXME, BUG, NOTE 등과 같이 같은 코드는 아니지만 일관된 주석을 사용한다.

13.2 if조건문과 들여쓰기

파이썬에서는 들여쓰기도 문법으로 정해져 있으며 if조건문에서도 중요하다.

x = 10
 
if x == 10:
     print('x에 들어있는 숫자는')
         print('10입니다.')     # unexpected indent 에러 발생

if 다음에 오는 코드들은 반드시 들여쓰기 깊이가 같아야 한다.

<오류 예제1>

x = 10
 
if x == 10:
     print('x에 들어있는 숫자는')
print ('10입니다.')

# 출력 결과
x에 들어있는 숫자는
10입니다.

print 두 개가 모두 실행

<오류 예제2>

x = 5  # x에 5를 할당
 
if x == 10:  # x가 5라서 조건식을 만족하지 않음
     print('x에 들어있는 숫자는')
print ('10입니다.')

# 출력 결과
10입니다.

if조건식을 만족하지 않아 두 번째 print가 출력된다.
(x가 5일 때는 '10입니다.'가 출력되지 않아야 하는데 출력됨)
이러한 코드는 일단 실행이 되기 때문에 잘못된 부분을 찾기가 쉽지 않다.

파이썬에서 :가 나오면 그 다음 줄부터는 무조건 들여쓰기를 한다는 점을 기억하도록 한다.

📎 참고) if와 들여쓰기 칸수
if에서 처음부터 들여쓰기를 4탄으로 했다면 계속 4칸으로 유지, 2칸으로 했다면 2칸으로 유지해야 한다.
들여쓰기 칸 수 자체는 문법으로 정해져 있지 않고 들여쓰기 깊이로만 판단한다. 하지만 PEP8(파이썬 코딩 스타일 가이드)에서는 공백 4칸으로 규정하고 있으므로 4칸을 권장한다.

13.3 중첩if조건문 사용하기

x = 15
 
if x >= 10:
     print('10 이상입니다.')
 
     if x == 15:  # 들여쓰기 주의
         print('15입니다.')
 
     if x == 20:  # 들여쓰기 주의
         print('20입니다.')

# 출력결과
10 이상입니다.
15입니다.

if 안쪽의 if를 보면 들여쓰기가 되어있다. 이렇게 들여쓰기가 된 if x == 15:if x == 20:은 처음의 if x >= 10:에 속한 코드이다.
(즉, if x >= 10:의 조건식이 만족해야만 실행되는 코드이다.)

13.4 사용자가 입력한 값에 if조건문 사용하기

x = int(input())          # 입력받은 값을 변수에 저장
 
if x == 10:               # x가 10이면
    print('10입니다.')    # '10입니다.'를 출력
 
if x == 20:               # x가 20이면
    print('20입니다.')    # '20입니다.'를 출력

# 실행결과
10 (입력)
10입니다.

13.5 연습문제 : if조건문 사용하기

다음 소스 코드를 완성하여 x의 값이 10이 아닐 때 'ok'가 출력되게 만드세요.

x = 5
 
if x != 10 :
    print('ok')

# 실행결과
ok

값이 다를 때를 판단하는 비교 연산자 !=사용
만약 객체를 비교해야 한다면 is, is not연산자를 사용하면 된다.

profile
안녕하세요 :-) 잘 부탁드립니다!

0개의 댓글