[Python] If문

David Kim·2022년 11월 1일
0

Python

목록 보기
11/11


혹시 이프 온리라는 영화를 봤습니까? 파이썬에도 If문이 있는데 물론 영화 이프온리랑 아무 상관도 없습니다. 하지만 파이썬 If문을 정리 하도록 하겠다.

If문이란?

사실 If문은 파이썬 뿐만 아니라 다른 프로그래밍 언어에도 나오는 없어서 안될
프로그래밍 문법이라 생각한다. 왜냐하면 모든 프로그래밍은 해당 조건에 맞는 상황을 판단하여 상황을 수행하는데 바로 If문을 쓰기 때문이다. 좀더 쉽게 얘기하자면 참과 거짓을 판단하는 문장이라 생각해도 된다.

그럼 파이썬에서 If문은 어떻게 쓸까?

>>> drunk = True
>>> if drunk:
		print("그만 마셔")
	else:
    	print("더 마셔")
그만 마셔

위와 같이 drunk가 참일 경우를 선정하고 만약 durnk가 참이면 "그만 마셔"를 print 하도록 하고 else 거짓이라면 "더 마셔"를 print 하도록 시킨거다.

If문의 기본 구조

사실 if와 else는 거의 한 세트라 보면 된다. if문이 조건문인데 수행할 문장을 먼저 걸어두고 수행을 하다 참이면 그대로 참인 문장이 나오고 거짓이면 else문을 통한 다음 문장이 수행이 된다. 당연한 말이지만 else문은 if문 없이 독립적으로 사용할 수 없다.

❗️If 조건문 사용시 주의할점 ❗️

  • if 조건문 뒤에는 반드시 콜론(:)이 붙어야한다.
  • space를 쓰든 tab을 하든 하나로 반드시 통일
  • if something: 쓰고 난 이후로 바로 if문에 속하여 들여쓰기를 하니 주의

If문에 쓰이는 비교 연산자

아주 쉽다 그냥 초등학교때 배운 수학시간 부호랑 다를바가 없다.

비교 연산자해석
x<yx가 y보다 작다
x>yx가 y보다 크다
x==yx와 y가 같다
x!=yx랑 y는 같지 않다
x>=yx는 y보다 크거나 같다
x<=yx는 y보다 적거나 같다

and, or, not

조건을 판단하기 위해 사용되는 다른 연산자이다.

연산자해석
x or yx와 y 둘 중에 하나만 참이어도 참이다
x and yx와 y 모두 참이어야 참이다
not xx가 거짓이면 참이다

이해 하기 어려울 수 있으니 예시를 하나 남기겠다.

>>> money = 2000
>>> card = True
>>> if money >= 3000 or card:
		print("taxi")
	else:
    	print("walk")
taxi

위 문장을 해석하자면 만약 money가 3000보다 같거나 이상 혹은 카드가 있다면 taxi 혹은 아니면 walk가 나오도록 한거다.

x in s, x not in s

파이썬에서는 다른 언어에서 쉽게 볼수 없는 조건문도 있다.

innot in
x in 리스트x not in 리스트
x in 튜플x not in 튜플
x in 문자열x not in 문자열

이번꺼 역시 아래 예시를 들겠다.

>>> 1 in [1, 2, 3] ⬅️ 1[1, 2, 3] 안에 있는가?
True
>>> 1 not in [1, 2, 3] ⬅️ 1[1, 2, 3] 안에 없는가?
False
>>> 'a' in ('a', 'b', 'c')
True
>>> 'j' not in 'python'
True

좀더 응용을 해보도록 하겠다

>>> pocket = ['money', 'card', 'cellphone']
>>> if 'money' in pocket:
		print("taxi")
	else:
    	print("walk")
taxi

pass pass pass 내 꿈은 축구왕⚽️

pass는 조건문의 참, 거짓의 실행을 아무런 일도 안일어나게 하고 싶을 때가 있다. 아래 예시 ㄲ

>>> pocket = ['paper', 'money', 'cellphone']
>>> if 'money' in pocket:
	pass
else:
	print('take out card')

위를 해석하자면 주머니에 돈이 있으면 가만히 있고 업승면 카드를 꺼내라
pocket 리스트안에 money가 pass를 수행하고 있어 아무 결과값도 안보여준다.

elif문

if와 else만으로 다양한 조건을 판단하기 어렵고 번거로울 때가 있다. 그럴떄 사용하는 조건문이 바로 elif문이다. 아래 예시를 보자

  • '주머니에 돈이 있으면 택시, 주머니에 돈은 없고 카드가 있다면 택시, 돈도 없고 카드도 없으면 걸어가라.'

if와 else만 사용할 경우 else: 이후 또 if를 써서 새로운 조건을 걸어야한다. 아래처럼

>>> pocket = ['paper', 'cellphone']
>>> card = True
>>> if 'money' in pocket:
	print("taxi")
else: 
	if card: ⬅️ else: 이후 새로운 조건문 if:를 쓴다
    	print("taxi")
	else:
    	print("walk")
taxi

문법상은 맞지만 갱장히 번거롭고 복잡해진다. 거의 도르마무급 그럼 elif를 써보자

>>> pocket = ['paper', 'cellphone']
>>> card = True
>>> if 'money' in pocket: ⬅️ 주머니에 돈이 있으면
		print("taxi")
elif card: ⬅️ 주머니에 돈이 없고 카드가 있으면
    	print("taxi")
else: ⬅️ 주머니에 돈도 없고 카드도 없으면
    	print("walk")
taxi

이런식으로 쓸수가 있다 elif는 False가 나오면 다음 문장으로 넘어간다 True가 나올때까지 근데 만약에 끝까지 False가 나온다면 마지막 False 문장을 나타낸다.

🐝꿀팁🐝

앞에 썼던 pass를 사용하여 if문 다음에 수행할 문장이 한 줄이고, else문을 다음 문장을 한줄로 정리 하는 방법이 있다!

>>> if 'money' in pocket:
	pass
else:
	print('take out card')

요거를 아래 처럼 요로케~

>>> pocket = ['paper', 'money', 'cellphone']
>>> if 'money' in pocket: pass
	else: print('take out card')

조건부 표현식

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

위 코드를 해석 해보면 score가 60 이상은 "success"이고 아닐 경우 "failure"가 나온다 이거를 한줄로 줄여보자

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

조건부 표현식은 아래처럼 정의가 된다.

  • 조건문이 참인 경우 if 조건문 else 조건문이 거짓인 경우

조건부 표현식은 가독성 좋고 한 줄로 작성할 수 있어서 편하다.

profile
people rarely succeed unless they have fun in what they are doing

0개의 댓글