Python if문

WorkFace·2025년 2월 2일

점프투 파이썬 : https://wikidocs.net/book/1

1. if 문의 기본 구조

if 조건문 :
	수행할_문장1
    수행할_문장2
    수행할_문장3
else :
	수행할_문장A
    수행할_문장B

조건문을 테스트 해서 참이면 if문 바로 다음 문장들을 수행하고 조건문이 거짓이면 else문 다음 문장들을 수행하게 된다. 따라서 else문은 if문 없이 독립적으로 사용할 수 없다.

들여쓰기

  • if 문을 만들 때는 if 조건문: 바로 다음 문장부터 if 문에 속하는 모든 문장에 들여쓰기를 해야 한다. 다음 예를 보면 조건문이 참일 경우 ‘수행할문장1’을 들여쓰기했고 ‘수행할문장2’와 ‘수행할문장3’도 들여쓰기했다. 다른 프로그래밍 언어를 사용해 온 사람들은 파이썬에서 ‘수행할문장’을 들여쓰기하는 것을 무시하는 경우가 많으므로 더 주의해야 한다.

콜론

  • if 조건문 뒤에는 반드시 콜론(:)이 붙는다.

2. 조건문이란 무엇일까?

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

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

- 비교연산자 설명

x < y = x가 y보다 작다.
x > y = x가 y보다 크다.
x == y = x와 y가 같다.
x != y = x와 y가 같지 않다.
x >= y = x가 y보다 크거나 같다.
x <= y = x가 y보다 작거나 같다

- 연산자 사용방법

x = 3
y = 2

x > y 
True

x에 3을 y에 2를 대입한 후 x > y라는 조건문을 수행하면 True를 리턴한다.

x < y

False
x == y

False

위 의 조건문들은 모두 거짓 이기 때문에 False를 리턴한다.

x != y

True

x는 y와 같지 않기 때문에 참이므로 True를 리턴한다.

money = 5000
if money >= 6000 :
	print("택시를 타고가")
else :
	print("걸어가")
    
걸어가

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

3. and, or, not

- 조건을 판단하기 위해 사용하는 다른 연산자로는 and, or, not 이 있다.

  • x or y = x와 y 둘중 하나만 참이여도 참이다.
  • x and y = x와 y 모두 참이여야 참이다.
  • not x = x가 거짓이면 참이다.
money = 2000
card = True
if money >= 3000 or card:
	print("택시를 타고 가라")
 else:
     print("걸어가라")

택시를 타고 가라

money는 2000이지만 card가 True이기 때문에 money >= 3000 or card 조건문이 참이 된다.

4. in, not in

- 영어단어 in의 뜻이 '~안에'라는 것을 생각해 보면 쉽게 이해할 수 있다.

1 in [1, 2, 3]

True

1 not in [1, 2, 3]

False

첫 번째 예는 '[1, 2, 3]이라는 리스트 안에 1이 있나?' 라는 조건문 이다. 1은 [1, 2, 3]안에 있으므로 True가 리턴한다.
두 번쩨 예는 '[1, 2, 3]이라는 리스트 안에 1이 없나?' 라는 조건문 이고, 1은 [1, 2, 3]안에 있으므로 False가 리턴한다.

- 튜플과 문자열에 적용할 수 있다

'a' in ('a', 'b', 'c')

True

'j' not in 'python'

True

- 다음은 택시 예제를 활용하여 응용해보자

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

pocket = ['paper', 'money', 'cellphone']
if 'money' in pocket :
	print('택시타고 가라')
else :
	print('걸어가라')
    
    
    
택시타고 가라

['paper', 'money', 'cellphone'] 리스트 안에 'money'가 있으므로 'money' in pocket은 True가 되어 if문에 속한 문장이 수행된다.

5. elif

- if와 else만으로 다양한 조건 판단이 어렵다.

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

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

if와 else만으로 두 문장을 판단하려면 복잡해 진다.

pocket = ['paper', 'cellphone']
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, elif, else를 모두 사용할 때 기본 구조는 다음과 같다.

if 조건문:
    수행할_문장1 
    수행할_문장2
    ...
elif 조건문:
    수행할_문장1
    수행할_문장2
    ...
elif 조건문:
    수행할_문장1
    수행할_문장2
    ...
...
else:
   수행할_문장1
   수행할_문장2
   ... 

elif는 갯수 제한없이 사용이 가능하다.

6. 조건부 표현식

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

if score >= 60:
    message = "success"
else:
    message = "failure"

조건부 표현식을 사용하면 간단하게 표현할 수 있다.

message = "success" if score >= 60 else "failure"

- 조건부 표현식은 다음과 같이 정의할 수 있다.

변수 = 조건문이_참인_경우의_값 if 조건문 else 조건문이_거짓인_경우의_값

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

출처 점프투 파이썬 https://wikidocs.net/20

0개의 댓글