[Python] if문

참조


소개

  • 파이썬을 공부해야 할 일이 생겨서, 위키독스에 올라와 있는 점프 투 파이썬 내용을 보면서 파이썬 공부한 내용을 기록합니다.
  • 보다 자세한 내용은 점프 투 파이썬 해당 사이트에 가셔서 더 깊게 확인하실 수 있습니다.

if문의 기본 구조

  • 다음은 if와 else를 사용한 조건문의 기본 구조입니다.
if 조건문:
    수행할 문장1
    수행할 문장2
    ...
else:
    수행할 문장A
    수행할 문장B
    ...
  • 조건문을 테스트해서 참이면 if문 바로 다음 문장들을 수행하고, 조건문이 거짓이면 els 문 다음 문장들을 수행하게 됩니다.
  • 그러므로 else문은 if문 없이 독립적으로 사용할 수 없습니다.

들여쓰기

  • if문을 만들 때는 if 조건문: 바로 아래 문장부터 if문에 속하는 모든 문장에 들여쓰기를 해주어야 합니다.
  • 다른 프로그래밍 언어를 사용해온 사람들은 파이썬에서 "수행할 문장" 을 들여쓰기 하는 것을 무시하는 경우가 있으니 주의해야 합니다.
if 조건문:
    수행할 문장1
    수행할 문장2
    수행할 문장3
  • 아래와 같이 작성하게 되면 오류가 발생하게 됩니다.
  • "수행할 문장2" 를 들여쓰기 하지 않았기 때문입니다.
if 조건문:
    수행할 문장1
수행할 문장2
    수행할 문장3

파이썬 들여쓰기

  • 오래전부터 파이썬에서 들여쓰기 관련하여 많은 논란이 있었습니다.
  • 공백(spacebar) 로 하는 것이 좋은지, 탭(Tab) 으로 하는 것이 좋은지에 대해서 말입니다.
  • 결론은 요즘 파이썬 커뮤니티에서는 들여쓰기를 할 때 공백(spacebar) 4개를 사용하는 것을 권장합니다.


조건문이란?

  • if 조건문에서 "조건문" 이란 참과 거짓을 판단하는 문장을 말합니다.
>>> money = True
>>> if money:
  • money는 True이기 때문에 조건이 참이 되어 if문 다음 문장을 수행합니다.

and, or, not

  • 조건을 판단하기 위해 사용하는 다른 연산자로는 and, or, not 이 있습니다.
  • 각각의 연산자는 다음처럼 동작합니다.
연산자 설명
x or y x와 y 둘중에 하나만 참이어도 참이다
x and y x와 y 모두 참이어야 참이다
x not y x 가 거짓이면 참이다

  • 다음 예를 통해 or 연산자의 사용법을 알아봅니다.

    돈이 3000원 이상 있거나 카드가 있다면 택시를 타고 그렇지 않으면 걸어가라.

>>> money = 2000
>>> card = True
>>> if money >= 3000 or card:
...     print("택시를 타고 가라")
... else:
...     print("걸어가라")
...
택시를 타고 가라
>>>
  • money는 2000이지만 card가 True 이기 때문에 money >= 3000 or card 조건문이 참이 됩니다.
  • 따라서 if문 다음 택시를 타고 가라 문장이 출력됩니다.

x in s, x not in s

  • 더 나아가 파이썬은 다른 프로그래밍 언어에서 쉽게 볼 수 없는 재미있는 조건문을 제공합니다.
in not in
x in 리스트 x not in 리스트
x in 튜플 x not in 튜플
x in 문자열 x not in 문자열

  • 다음 예를 통해 x in s 연산자릐 사용법을 알아봅니다.
>>> pocket = ['paper', 'cellphone', 'money']
>>> if 'money' in pocket:
...     print("택시를 타고 가라")
... else:
...     print("걸어가라")
...
택시를 타고 가라
>>>
  • ['paper', 'cellphone', 'money'] 리스트 안에 'money'가 있으므로 'money' in pocket은 참이 됩니다.
  • 따라서 if문 다음 문장이 수행됩니다.

다양한 조건을 판단하는 elif

  • if와 else 만으로는 다양한 조건을 판단하기 어렵습니다.

    주머니에 돈이 있으면 택시를 타고, 주머니에 돈은 없지만 카드가 있으면 택시를 타고, 돈도 없고 카드도 없으면 걸어 가라.

  • 위 문장을 보면 조건을 판단하는 부분이 2 군데가 있습니다.
  • 먼저 주머니에 돈이 있는지를 판단해야 하고 주머니에 돈이 없으면 다시 카드가 있는지 판단해야 합니다.
  • if와 else 만으로 위 문장을 표현하려면 다음과 같이 할 수 있습니다.
>>> pocket = ['paper', 'handphone']
>>> card = True
>>> if 'money' in pocket:
...     print("택시를 타고가라")
... else:
...     if card:
...         print("택시를 타고가라")
...     else:
...         print("걸어가라")
...
택시를 타고가라
>>>
  • 언뜻 보기에도 구조가 한눈에 들어오지 않습니다.
  • 이때 elif를 사용하게 되면 구조가 쉽게 변경됩니다.
>>> pocket = ['paper', 'cellphone']
>>> card = True
>>> if 'money' in pocket:
...      print("택시를 타고가라")
... elif card: 
...      print("택시를 타고가라")
... else:
...      print("걸어가라")
...
택시를 타고가라
  • 위에서 볼 수 있듯이 elif는 개수에 제한 없이 사용할 수 있습니다.

조건부 표현식

  • 아래와 같은 코드가 있습니다.
if score >= 60:
    message = "success"
else:
    message = "failure"
  • 위 코드는 score가 60 이상일 경우 message에 문자열 "success"를, 아닐 경우에는 "failure"를 대입하는 코드입니다.
  • 파이썬의 조건부 표현식을 사용하면 위 코드를 다음과 같이 간단히 표현할 수 있습니다.
message = "success" if score >= 60 else "failure"
  • 조건부 표현식은 다음과 같이 정의합니다.
  • 조건문이 참인 경우 if 조건문 else 조건문이 거짓인 경우
  • 조건부 표현식은 가독성에 유리하고 한 줄로 작성할 수 있어 활용성이 좋습니다.
728x90

'파이썬(Python)' 카테고리의 다른 글

[Python] for문  (0) 2022.02.05
[Python] while문  (0) 2022.02.05
[Python] 변수  (0) 2022.01.29
[Python] boo(불) 자료형  (0) 2022.01.29
[Python] 집합(Set)  (0) 2022.01.29

이 글을 공유하기

댓글

Designed by JB FACTORY