if문
프로그래밍에서 조건을 판단하여 해당 조건에 맞는 상황을 수행하는데 사용됨
조건에 따라 수행하는 기능을 다르게 할 수 있음
if 조건문:
수행할 문장1
수행할 문장2
else:
수행할 문장A
수행할 문장B
위와 같은 형태의 기본 구조를 가짐
조건문을 테스트해서 참이면 if문 내에 문장을 수행하고 거짓이면 else문 내에 문장을 수행함
else문은 if문 없이 독립적으로 사용할 수 없음
if문또는 else문에 속하는 모든 문장은 들여쓰기를 해주어야함
들여쓰기 한 문장들의 들여쓰기의 너비가 같아야함 즉 형식이 똑같아야함
조건문 다음에는 콜론(:)을 작성해야함을 잊지말자!
| 비교 연산자 | 설명 |
|---|---|
| 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 = 2
y = 1
print(x > y) #True
print(x < y) #False
print(x == y) #False
print(x != y) # True
| 연산자 | 설명 |
|---|---|
| x or y | x와 y 둘중에 하나만 참이면 참 |
| x and y | x와 y 둘다 참이면 참 |
| not x | x가 거짓이면 참 |
money = 1999
card = True
if money >= 2000 or card:
print("택시 타자")
else:
print('돈없다 걸어가자...')
#출력: 택시 타자
| in | not in |
|---|---|
| x in 리스트 | x not in 리스트 |
| x in 튜플 | x not in 튜플 |
| x in 문자열 | x not in 문자열 |
# 리스트
print(1 in [1,2,3]) # True
print(4 in [1,2,3]) # False
print(1 not in [1,2,3]) # False
print(4 not in [1,2,3]) # True
# 문자열
print(p in 'python') # True
print(a in 'python') # False
print(p not in 'python') # False
print(a not in 'python') # True
# 튜플
print(a in ('a','b','c')) #True
print(d in ('a','b','c')) #False
print(a not in ('a','b','c')) #False
print(d not in ('a','b','c')) #True
if와 else만으로는 다양한 조건을 판단하기 어려움 -> elif문을 사용
elif문을 사용하면 다중조건을 판단할 수 있음
card =True
if 'money' in pocket:
print("택시를 타고 가라")
elif card:
print("택시를 타고 가라")
else:
print("걸어가라")
#출력 : 걸어가라
if 조건문1:
수행할 문장1-1
수행할 문장2-2
...
elif 조건문2:
수행할 문장2-1
수행할 문장2-2
...
...
...
elif 조건문N:
수행할 문장 N-1
수행할 문장 N-2
..
else:
수행할 문장A
수행할 문장B
# 일반적인 조건문
if score >= 60:
message = 'success'
else:
message = 'failure'
# 조건부 표현식
message = 'succes' if score >= 60 else 'failure'
조건문이 참인 경우 if 조건문 else 조건문이 거짓인 경우 형식으로 사용할 수 있음
조건부 표현식은 가독성에 유리하고 한줄로 작성할 수 있어 활용성이 좋음
while문
반복해서 문장을 수행해야 할 경우 while문을 사용
반복문이라고도 부름
# while문의 기본구조
while 조건문:
수행할 문장1
수행할 문장2
수행할 문장3
....
위와 같은 형식으로 사용할 수 있음
조건문이 참인 동안에 while문속 문장이 반복 수행됨
# ex1
hit = 0
while hit < 10: #조건이 참이면 반복
hit = hit + 1
print("나무를 %d번 찍었습니다." % hit)
if hit == 10:
print("나무 넘어갑니다.")

열번찍어 안넘어가는 나무 없다를 파이썬 프로그램으로 작성한 예제
hit가 10이 되는 순가 while문의 조건이 거짓이 되므로 반복문이 종료됨
break문을 사용# ex 커피자판기
coffee =10
money =300
while money:
print("돈을 받았으니 커피를 줍니다.")
coffee = coffee -1
print("남은 커피의 양은 %d개입니다." %coffee)
if not coffee:
print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
break
커피자판기의 커피가 다떨어지면 반복문을 종료하는 코드
커피가 주문될때마다 커피 개수가 1씩 줄어들고 커피가 0이 되는 순간 if not coffe문에 조건이 참이므로 커피가 떨어졌다는 안내문과 함께 반복문이 종료된다.
a = 0
while a < 10:
a = a +1
if a % 2 ==0: continue
print(a)
# 출력:
# 1
# 3
# 5
# 7
# 9
무한히 반복되는 루프 즉 반복문이 끝없이 반복될대 무한루프라고 한다.
파이썬에서 무한 루프는 while문을 활용해서 구현할 수 있음
while True 으로 하면 조건이 항상 참이므로 무한 루프를 구현할 수 있다
#Example
while True:
print("please input ctrl + c to exit this program")
for문
while문처럼 반복문을 수행하는데 사용됨
for문은 문장 구조가 직관적이라 이해가 쉬움
# 기본 구조
for 변수 in 리스트(or 튜플,문자열):
수행할 문장1
수행할 문장2
...
test_list = ['one', 'two', 'three']
for i in test_list:
print(i)
출력결과

i에는 리스트의 첫번째 요소부터 마지막 요소까지 하나씩 대입 됨
i에 값이 대입 된후 문장을 수행하고 다음 요소로 넘어간다.
a = [(1,2), (3,4), (5,6)]
for (first, last) in a:
print(first+last)

while문에서 사용한 continue문과 동일하게 사용할 수 있음
continue문을 만나면 for문의 처음으로 되돌아감
scores = [90,25,67,45,80]
number = 0
for score in scores:
number = number + 1
if score < 60: continue
print("%d번 학생 축하합니다. 합격입니다." % number)
# 간단한 range 함수 예제
a = range(10)
print(a) # range(0,10) 0~9
b = range(1,11)
print(b) range(1,11) 1~10
range(n)은 0부터 n-1 까지의 숫자를 포함하는 range객체를 만들어줌
range(시작 숫자, 끝 숫자) 이때 끝 숫자는 포함되지 않음
# for문에 range함수를 사용하는 Example
add = 0
for i in range(1,11):
add = add + i
print(add) # 55
range(1,11)은 숫자 1부터 10까지의 숫자를 데이터로 갖는 객체
위 코드는 1~10 까지의 수를 모두 더하는 코드
리스트 안에 for문을 포함하는 것을 리스트 내포라고함
리스트 내포를 사용하면 좀 더 편리하고 직관적으로 보이는 효과가 있음
표현식 for 항목 in 반복 가능 객체 if 조건 형식으로 사용할 수 있음
# 그냥 for문
a = [1,2,3,4]
result = []
for num in a:
resutl.append(num*3)
print(result) # [3,6,9,12]
# 리스트 내포
a = [1,2,3,4]
rsult = [num * 3 for num in a]
print(result) # [3,6,9,12]