if 조건문이란?
if는 영문법에서 만약~ 만일 ~ 이라고 쓰인다.
If you can (만약 네가 할 수 있으면), If you don't mind (만약 네가 신경 쓰지 않는다면, 괜찮다면...)
영어에선 이런 if가 파이썬으로 와도 똑같다.
만약~~가 ture(참) 일 경우, 만약 ~~가 false(거짓) 일 경우. 이렇게 조건을 붙여서 참이거나 거짓일 경우 지시된 문장을 실행하게 된다.
예문
coin = 1000 #변수 coin은 1000
if coin > 500: #만약 coin(정수 1000)이 500보다 크면
print("음료를 살 수 있습니다.") #실행문 실행
else: #아니면
print("음료를 살 수 없습니다.") #실행문 실행
음료를 살 수 있습니다. #조건문이 참이기 때문에 if바로 밑의 실행문 실행됨
파이썬에서 if문 등의 조건문을 사용 할 때 항상 들여 쓰기를 해야 하는데 보통 탭을 눌러 빈 공간을 두는 것보다
스페이스바 4번으로 통일하면 된다.
스페이스바 6번이든 10번이든 공백을 얼마나 두던 상관없는데 이 경우엔 모든 들여 쓰기
공백 너비가 같아야 하기 때문에 코드가 여러 사람 오갈 시 혼란스럽게 될 수도 있고 통일성도 없다.
if조건문을 사용 한 다음에는 ( 콜론 : )을 잊지 말고 스페이스바 4번 들여 쓰기도 잊지 말자.
i | f | c | o | i | n | > | 5 | 0 | 0 | : | |||||||||
- | - | - | > | p | r | i | n | t | ( | " | " | ) |
if문 마지막의 콜론과 4칸 공백으로 들여 쓰기.
e | l | s | e | : | |||||||||||||||
- | - | - | > | p | r | i | n | t | ( | " | " | ) |
else끝에 콜론과 들여 쓰기
else다음에는 당연하지만 조건문은 필요 없다. if에서 비교하고 참이 아닌 것은 자연스레 내려오기 때문이다.
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보다 작거나 같다 |
위 비교연산자를 사용해 이렇게도 프로그래밍 할 수도 있다.
coin = 700
bus = 2000
if coin > bus : #만약 coin이 bus보다 크면
print("통과입니다.") #통과
else: #아니면
print("요금이 부족합니다.") #요금이 부족합니다.
요금이 부족합니다.
password = "q1w2e3r4"
input = "1234"
if password == input : #password와 input이 같은지 비교
print("통과입니다.") #같으면 통과
else: #아니면
print("비밀번호가 일치하지 않습니다") #비밀번호가 일치하지 않습니다.
비밀번호가 일치하지 않습니다.
조건이 거짓일경우 else로 내려가 해당 실행문을 실행하게 된다.
and, or, not
기호 | 설명 |
x or y | x, y 둘 중 하나라도 참이면 참 |
x and y | x, y 둘 다 참이어야 참 |
not x | x가 거짓이면 참 |
or을 사용하는 경우
# or을 사용한 예문
coin = 700
passcard = True
bus = 2000
if coin > bus or passcard : # coin > bus 와 passcard 둘 중 하나가 참일경우 참
print("통과입니다.") #통과
else: #아니면
print("요금이 부족합니다.") #요금이 부족합니다.
통과입니다.
and를 사용하는 경우
id = "kimkim12"
password = "q1w2e3r4"
idinput = "kimkim12"
psinput = "1234"
if id == idinput and password == psinput : #두 ==비교연산자가 둘다 참인지 확인
print("통과입니다.") #둘다 참일경우 통과
else: #아니면
print("비밀번호가 일치하지 않습니다") #비밀번호가 일치하지 않습니다.
비밀번호가 일치하지 않습니다.
in, not in
프로그래밍 언어에서 드물게 파이썬에 존재하는 조건문이다.
x in 리스트 또는 튜플 | x not in 리스트 또는 튜플 |
in : ~안에
안에 있는지, 안에 없는지 확인하는 조건문이다.
a = [1, 2, 3, 4, 5] # 1~5까지 있는 리스트 변수 a
1 in a # a안에 1이 있다
True # 참이기 때문에 True출력
6 in a # a안에 7이 있다
Flase # 7이 없으므로 거짓
# 반대의 경우
1 not in a # a안에 1이 없다.
Flase # 1이 있으므로 False출력
6 not in a # a안에 7이 있다
True # 7이 없으므로 참
여러 조건을 사용할 수 있는 elif
if만약, else아니면
이 두가지만 가지고는 여러가지 조건을 동시에 사용하기에 벅차다.
만약 돈이 있으면 버스를 타고, 돈은 없고 교통카드가 있으면 지하철을 탈 수 있지만 둘 다 없는 경우엔 걸어야 한다. |
이 조건을 if와 else만 사용할 경우엔
pocket = ['money','candy'] # 주머니에 돈과사탕이 있음
passcard = True # 교통카드도 가지고 있음
if 'money' in pocket : # 만약 돈이 주머니에 있으면
print("버스를 탑니다.") # 버스를 탈 수 있다.
else: # 없는경우
if card : # 카드를 가지고(True) 있는가?에 대한 if문을 이용한 조건비교
print("지하철을 탑니다.") # 카드가 있으면(카드가 참이면) 지하철을 탑니다 출력
else:
print("걸어가라") #아니면 걸어가라 출력.
버스를 탑니다.
보다싶이 if속에 if조건문이 또 들어가야 하고, 들여쓰기도 2배가 되어 굉장히 난잡하고 직관적이지 못하다.
하지만 elif를 사용하여
pocket = ['money','candy'] # 주머니에 돈과사탕이 있음
passcard = True # 교통카드도 가지고 있음
if 'money' in pocket : # 만약 돈이 주머니에 있으면
print("버스를 탑니다.") # 버스를 탈 수 있다.
elif card: # 없는경우 카드의 참, 거짓을 확인
print("지하철을 탑니다.") # 참일경우 지하철을 탑니다 출력
else:
print("걸어가라") #아니면 걸어가라 출력.
버스를 탑니다.
if안에 넣어야 했던 if를 꺼내어 elif로 써주면서 두번 들여쓰기 할 필요도 없어졌고 조건비교 다시시작을 즉시 하기 때문에 보기에도 쉽다.
또 한가지 특이점은 elif를 사용하면 조건비교를 개수 제한 없이 사용할 수 있다.
'IT > 파이썬3 공부' 카테고리의 다른 글
[파이썬 기초] for 반복문 기초 (0) | 2020.05.15 |
---|---|
[파이썬 기초] while 반복문 기초 (0) | 2020.05.13 |
[파이썬 기초] 딕셔너리와 관련함수 (0) | 2020.05.10 |
[파이썬 기초] 튜플 인덱싱과 슬라이싱, 함수 (0) | 2020.05.05 |
[파이썬 기초] 리스트 -2 연산과 함수사용 (0) | 2020.05.01 |
최근댓글