제어문
가. 조건문
- if 문
나. 반복문
- while 문
- for in 문 #자료구조에서 원소를 뽑아낼 때
조건문
가. 구문
if 조건 :
명령문 1
명령문 2
print("숫자를 입력받습니다.")
num = int(input("숫자:"))
if num == 0:
print("영입니다.")
print(num)
나. 조건이 True일 때 False일 때 실행 구문이 분기되는 조건문
if 조건 :
명령문 1_1
명령문 2_2
else :
명령문 2_1
num = 0
if num == 0:
print("0입니다.")
else:
print("0이 아닙니다.")
print("종료")
다. 조건이 여러개인 조건문
if 조건 :
명령문 1_1
명령문 2_2
elif 조건2 :
명령문 2_1
명령문 2_2
elif 조건3 :
명령문 3_1
명령문 3_2
else :
명령문 4
num = 10
if num > 0:
print(f"{num}은 양수")
elif num < 0:
print(f"{num}은 음수")
elif num == 0:
print("0")
print("종료")
month = int(input("월:"))
if month in [1,3,5,7,8,10,12]:
print(f"{month}월은 31일까지 있습니다.")
elif month == 2:
print(f"{month}월은 28일 또는 29일까지 있습니다.")
elif month in [4,6,9,11]:
print(f"{month}월은 30일까지 있습니다.")
else:
print(f"{month}월은 잘못 입력하였습니다.")
print("종료")
month_str = input("월:")
if month_str.isdigit():
month = int(input("월:"))
if month in [1,3,5,7,8,10,12]:
print(f"{month}월은 31일까지 있습니다.")
elif month == 2:
print(f"{month}월은 28일 또는 29일까지 있습니다.")
elif month in [4,6,9,11]:
print(f"{month}월은 30일까지 있습니다.")
else:
print(f"{month}월은 잘못 입력하였습니다.")
else:
print("월은 1 ~ 12 사이의 정수만 입력하세요")
print("종료")
반복문
가. 구문
1. while 문
- 단순 반복 처리
- 조건이 True 동안 구문을 반복한다
while 조건:
반복할 구문 1
반복할 구문 2
cnt = 1
while cnt <= 10:
print("안녕하세요")
cnt = cnt +1
print("종료")
2. for in 문
- iterable객체가 제공하는 값들을 반복 조회
- iterable객체가 가지고 있는 값들을 하나씩 처리하는 구문을 작성 할 때 사용
for 변수 in iterable:
반복구문
반복구문
l = [1,2,3,4,5]
for a in l:
print(l)
for a in l:
if a % 2 == 0:
print(a)
result = []
for a in l:
result.append(a+10)ㄹ
print(l)
print(result)
a = [[1,2], [10,20], [100,200]]
for v1, v2 in a:
print(v1, v2)
continue와 break를 이용한 반복문 제어
가. continue
1. 현재 반복을 중단하고 다음 반복을 진행한다
2. 특정 조건에서 처리를 멈추고 다음 처리를 반복할 때 사용
l = [1,2,3,4,5,6,7,8,9]
for a in l:
if a % 3 != 0:
continue
print(a)
print("종료하려면 quit을 입력")
v = input("숫자")
l = []
while v != "quit":
if not v.isdigit():
v = input("숫자: ")
continue
l.append(v)
v = input("숫자: ")
나. break
- 반복문 실행을 중단한다.
- 특정 조건에서 반복문을 중간에 중지할 때 사용
while True:
print('a')
break
for i in [1,2,3,4,5]:
print(i)
break
pos_values = []
neg_values = []
while True:
v = random.randint(-100, 100)
if v > 10:
pos_values.append(v)
elif v < 10:
neg_values.append(v)
else:
break
print("종료")
print(len(pos_values), len(neg_values))
print(pos_values[:10])
for in 문 연관 내장 함수
가. range()
1. 일정한 간격의 연속된 정수를 제공하는 반복
2. 구문
- range([시작값], 멈춤값, [증감값])

for v in range(5):
print(v, end=", ")
for v in range(1, 10):
print(v, end=", ")
for v in range(100, 200, 10):
print(v, end=", ")
for v in range(200, -200, -50):
print(v, end=", ")
나. enumerate()
1. enumerate(iterable, [, start=정수])
2. start: 정수
- index 시작 값. 생략하면 0부터 시작
l = list(range(20, 31))
for index, value in enumerate(l):
print(index, value)
for index, value in enumerate(l, start=100):
print(index, value)
다. zip()
1. 여러개의 객체를 받아 반복 시 index 값끼리 튜플로 묶는다.
2. 구문
- zip(iterable1, 2, 3 [, ......])
names = ["홍길동", "이순신", "유관순", "강감찬"]
ages = [20,30,40,50]
addresses = ["서울", "부산", "광주", "인천"]
for names, ages, addresses in zip(names, ages, addresses):
print(names, ages, addresses)
-------
info_list = []
for name, age, address in zip(names, ages, addresses):
info = {"name": name, "age": age, "address": address}
info_list.append(info)
print(info_list)
컴프리헨션
가. 이해
l = list(range(1,11))
l2 = []
for v in l:
l2.append(v*10)
l3 = [v *10 for v in l]
l4 = []
for v in l:
if v % 2 == 0:
l4.append(v)
l5 = [v for v in l if v %2 == 0]