if문

SANGKU OH·2020년 7월 3일
0
post-thumbnail

if문은 왜 필요할까?

"돈이 있으면 택시를 타고, 돈이 없으면 걸어간다."

위와 같은 상황을 파이썬에서는 다음과 같이 표현할 수 있다.

money에 True를 입력했으므로 money는 참이다. 따라서 if문 다음 문장이 수행되어 '택시를 타고 가라'가 출력된다.

if문의 기본 구조

조건문을 테스트해서 참이면 if문 바로 다음 문장(if 블록)들을 수행하고, 조건문이 거짓이면 else문 다음 문장(else 블록)들을 수행하게 된다. 그러므로 else문은 if문 없이 독립적으로 사용할 수 없다.

들여쓰기

if문을 만들 때는 if 조건문: 바로 아래 문장부터 if문에 속하는 모든 문장에 들여쓰기(indentation)를 해주어야 한다. 오른쪽에서 보는 것과 같이 조건문이 참일 경우 "수행할 문장1"을 들여쓰기했고 "수행할 문장2"와 "수행할 문장3"도 들여쓰기 해 주었다. 다른 프로그래밍 언어를 사용해 온 사람들은 파이썬에서 "수행할 문장"을 들여쓰기하는 것을 무시하는 경우가 많으니 더 주의해야 한다.

⚡️다음처럼 작성하면 오류가 발생한다. "수행할 문장2"를 들여쓰기하지 않았기 때문이다.

⚡️조건문 다음에 콜론(:)을 잊지 말자!

조건문이란 무엇인가?

if 조건문에서 "조건문"이란 참과 거짓을 판단하는 문장을 말한다.

앞에서 살펴본 택시 예제에서 조건문은 money가 된다.

money는 True이기 때문에 조건이 참이 되어 if문 다음 문자를 수행한다.

1. 비교연산자

이번에는 조건문에 비교연산자(<, >, ==, !=, >=, <=)를 쓰는 방법에 대해 알아보자.

다음 표는 비교 연산자를 잘 설명해 준다.

비교연산자를 통해 다음처럼 프로그래밍할 수 있다!😎

"만약 3,000원 이상의 돈을 가지고 있으면 택시를 타고, 그렇지 않으면 걸어 가라."

money >= 3000 조건문이 거짓이 되기 때문에 else 다음 문장을 수행하게 된다.

2. and, or, not

조건을 판단하기 위해 사용하는 다른 연산자로는 and, or, not이 있다.
각각의 연산자를 사용하는 방법을 알아보자!

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

money는 2000이지만 card가 True이기 때문에 money >= 3000 or card 조건문이 참이 된다. 따라서 if문 다음 ‘택시를 타고 가라’ 문장이 출력된다.

3. x in s, x not in s

파이썬은 다른 프로그래밍 언어에서 볼 수 없는 재미있는 조건문을 제공한다!

영어 단어 in의 뜻이 "~안에"라는 것을 생각해 보면 다음 예가 쉽게 이해될 것이다!😎

앞에서 첫 번째 예는 "[1, 2, 3]이라는 리스트 안에 1이 있는가?" 조건문이다. 1은 [1, 2, 3] 안에 있으므로 참이 되어 True를 돌려준다. 두 번째 예는 "[1, 2, 3] 리스트 안에 1이 없는가?" 조건문이다. 1은 [1, 2, 3] 안에 있으므로 거짓이 되어 False를 돌려준다.

이번에는 택시를 타는 조건에 in을 적용해 보자!

"만약 주머니에 돈이 있으면 택시를 타고, 없으면 걸어 가라."

['paper', 'cellphone', 'money'] 리스트 안에 'money'가 있으므로 'money' in pocket은 참이 된다. 따라서 if문 다음 문장이 수행된다.

⚡️조건문에서 아무 일도 하지 않게 설정하고 싶다면??

다양한 조건을 판단하는 elif

if와 else만으로는 다양한 조건을 판단하기 어렵다. 다음 예를 보더라도 if와 else만으로는 조건을 판단하는 데 어려움을 겪게 된다.

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

위 문장을 보면 조건을 판단하는 뿐이 두 군데가 있다. 먼저 주머니에 돈이 있는지를 판단해야 하고, 주머니에 돈이 없으면 다시 카드가 있는지 판단해야 한다.

if와 else만으로 위 문장을 표현하려면 다음과 같이 할 수있다.

복잡하다!!🔥
이런 복잡함을 해결하기 위해 파이썬에서는 다중 조건 판단을 가능하게 하는 elif를 사용한다!

즉 elif는 이전 조건문이 거짓일 때 수행된다. if, elif, else를 모두 사용할 때 기본 구조는 다음과 같다.

또한 elif는 개수에 제한 없이 사용할 수 있다.

⚡️if문을 한 줄로 작성하기!

조건부 표현식


위 코드는 score가 60 이상일 경우 message에 문자열 "success"를, 아닐 경우에는 "failure"를 대입하는 코드이다.

파이썬의 조건부 표현식(conditional expression)을 사용하면 위 코드를 다음과 같이 간단히 표현할 수 있다.

조건부 표현식은 다음과 같이 정의한다.

조건부 표현식은 가독성에 유리하고 한 줄로 작성할 수 있어 활용성이 좋다👍

(rel:https://wikidocs.net/20)

profile
Prof.Google을 통해 필요한 정보를 이 곳에 insert 🐸

0개의 댓글