요소를 한번에 하나씩 가지고 원하는 로직을 실행할 수 있게 해주는 역할
for 문은 list나 set, dictionary 등의 data structure 등을 기반으로 코드블록을 반복 실행한다.
for element in list:
do_something_with_element
iteration : for 문에서는 리스트가 가지고 있는 요소의 수 만큼 for 문에 속해있는 코드를 실행시키는 부분(for element in list의 list 부분)
예시
my_list = [int(s) for s in input().split()]
odd_numbers = [ ]
## 먼저 홀수값들을 골라내서 리스트를 만들고
for element in my_list:
if (element % 2) == 1:
odd_numbers.append(element)
## 홀수값들을 하나 하나 기존 리스트에서 지워준다
for odd_number in odd_numbers:
my_list.remove(odd_number)
print(my_list)
끝까지 for 문을 진행할 필요 없이 중간에서 멈추고 싶을때 사용
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}")
for in range(start_value, end_value, step)
시작조건, 종료조건, 스텝(생략 가능)
range를 이용해서 0부터 4까지 리스트에 숫자를 집어넣는 코드
our_list = [];
for i in range(0, 5):
our_list.append(i)
print(our_list)
> [0,1,2,3,4]
dictionary는 각 요소가 key 와 value로 이루어져 있음,
그렇기 때문에 dictionary를 사용한 for 반복구문에서는 각 요소의 key만 return한다.
- 해당 key를 가지고 값을 읽어들이는 구조
key 값 말고 value 값으로 처음부터 looping 하는 방법
values()
함수
dictionary의 value 들을 list 의 형태로 return
values() 함수를 다음 처럼 사용하면 for 반복구문에서 key 값 대신에 value 값들을 가지고 반복 로직을 실행 할 수 있다.
key와 value 값 둘다 가지고 for 반복구문을 실행
items()
함수while 문은 특정 조건문이 True 일동안 코드블록을 반복 실행한다.
list 같은 자료구조 없이도 반복구문을 실행한다.
while <조건문>:
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
...
<수행할 문장N>
number = 0
while number <= 10:
print(number)
number += 1
> 0
1
2
3
4
5
6
7
8
9
10
for 문과 동일하게 break는 while문을 강제종료 하고 continue는 다음 iteration 으로 넘어간다.
number = 0
while number <= 10:
if number == 9:
break
elif number <= 5:
number += 1
continue
else:
print(number)
number += 1
> 6
7
8
if문의 else 문과 유사함, if문의 else문은 if문의 조건문이 False이면 실행되며 While문의 else문도 while의 조건문이 False이면 실행된다. 즉 while문이 종료되면 else 문이 실행된다는 뜻
while <조건문>:
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
...
<수행할 문장N>
else:
<while문이 종료된 후 수행할 문장1>
<while문이 종료된 후 수행할 문장2>
<while문이 종료된 후 수행할 문장3>
...
<while문이 종료된 후 수행할 문장N>
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