For Loops(for 구문)
는 list, tuple, dictionary와 같은 자료구조의 요소를 한번에 하나씩 원하는 로직을 실행하도록 도와주는 역할을 한다.
for element in list:
do_something_with_element
for 구문에서는 리스트가 가지고 있는 요소의 갯수만큼 for 구문에 속해있는 코드를 실행하며 이를 iteration이라고 한다. 예를 들어 리스트가 5개의 요소를 가지고 있으면 5 iterations라고 한다.
Break
for 구문에서 끝까지 진행하지 않고 중간에서 멈추고 싶을 때는 break
사용.
break
문이 실행되면 다음 iteration으로 넘어가지 않고 for구문에서 빠져나오게 된다.
continue
break
처럼 for 구문에서 완전히 빠져나오고 싶진 않지만 다음 iteration으로 넘어가고 싶을 때 continue
사용.
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [10, 20, 30, 40, 50]
for num1 in numbers1:
for num2 in numbers2:
print(f"{num1}*{num2} == {num1 * num2}")
my_list = [1, 2, 3, 4, 5, 1, 2, 3, 7, 9, 9, 7]
dic = {}
for element in my_list:
if element not in dic:
dic[element] = 1
elif element in dic:
dic[element] += 1
for i in dic:
if dic[i] == 1:
print(i) # 결과: 4, 5
str_list = []
mission_str = "wecode"
for i in mission_str: # 문자열에서도 for 구문 이용해 한글자씩 추출 가능
str_list.append(i)
return str_list
반복문을 통해 코드 수행을 여러번 할 수 있으며, range
의 경우 시작조건, 종료조건, 스텝(optional)을 쓸 수 있다.
for in range(start_value, end_value, step)
Range
(범위 함수)를 이용해 리스트에 0부터 4까지 넣어보기my_list = []
for i in range(0,5):
my_list.append(i) # 결과: [0, 1, 2, 3, 4]
Range
(범위 함수)를 이용해 리스트에 1부터 9까지 홀수만 넣어보기my_list = []
for i in range(1,10,2) # range(start_value, end_value, step)
my_list.append(i) # 결과: [1,3,5,7,9]
Range
(범위 함수)를 이용해 리스트 요소의 총합 return 하는 함수 완성하기my_list = [2,3,4,5,6]
sum = 0
for i in my_list:
sum += i
return sum
특정 조건문이 True일 동안 코드블록을 반복 실행하는 구문
while <조건문> # while 구문 수행할 문장
number = 0
while number <= 10: # number가 10 이하 = True
if number == 9: # 조건문 1) number가 9면 break
break
elif number <= 5: # 조건문 2) number가 5 이하인 경우 number에서 1씩 계속 더함
number += 1
continue # 결과: 1, 2, 3, 4, 5, 6
else: # 조건문 3) 조건문 1,2에 해당하지 않는 경우 해당 number 출력
print(number) # 결과: 6,7,8
number += 1
number = 0
while number <= 10:
print(number)
number += 1
else:
print(f"while 문이 끝나고 난 후 의 number : {number}")
결과: 0
1
2
3
4
5
6
7
8
9
10
while 문이 끝나고 난 후 의 number : 11
def find_smallest_integer_divisor(numb):
a = 2
while a > 1:
if numb % a != 0:
a += 1
else:
return a
list와 마찬가지로 dictionary도
for 구문
을 이용해 반복되는 로직을 실행할 수 있다.
dictionary는 list와 다르게 각 요소가key
와value
로 이루어져 있기 때문에, dictionary를 이용한 for 구문에서는 각 요소의key
만 리턴한다.
key가 아닌 value
값으로 looping 하는 방법
value
값으로 for 구문을 실행하려면 values 함수
이용
key
와 value
두 개를 모두 이용하여 looping 하는 방법
key
와 value
둘 다를 이용하여 for 구문 실행하려면 items 함수
이용
Dictionary의 items 함수는 key와 value를 tuple
로 리턴함
def get_occurrence_count(my_list):
dic = {}
for i in my_list:
if i not in dic:
dic[i] = 1
elif i in dic:
dic[i] += 1
return dic
여러개의 dictionary를 list로 합하여 정보를 표현하는 방법으로 for 구문을 이용하여 각각의 dictionary를 쉽게 읽을 수 있고 원하는 로직의 실행이 가능하다.
bts_members = [ { "실명" : "김남준", "가명" : "RM", "생년월일" : "1994년 9월 12일" }, { "실명" : "김석진", "가명" : "진", "생년월일" : "1992년 12월 4일" } ]
Dictionary 안에 dictionary를 중첩적으로 사용하면 원하는 데이터를 더 효과적으로 표현할 수 있다
bts_members = { "RM" : { "실명" : "김남준", "생년월일" : "1994년 9월 12일" }, "진" : { "실명" : "김석진", "생년월일" : "1992년 12월 4일" } } print(bts_members["RM"]["생년월일"])