[PYTHON] For Loops, While Loops

For Loop

요소를 한번에 하나씩 가지고 원하는 로직을 실행할 수 있게 해주는 역할
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)

Break

끝까지 for 문을 진행할 필요 없이 중간에서 멈추고 싶을때 사용

Continue

break처럼 for 문에서 완전히 빠져 나오고 싶지는 않지만 다음 요소, 즉 다음 iteration으로 넘어가고 싶을때는 continue 문을 사용

Nested For Loops

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}")

range

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]

Looping Dictionary

dictionary는 각 요소가 key 와 value로 이루어져 있음,
그렇기 때문에 dictionary를 사용한 for 반복구문에서는 각 요소의 key만 return한다.

  • 해당 key를 가지고 값을 읽어들이는 구조

Values Instead of Keys

key 값 말고 value 값으로 처음부터 looping 하는 방법

  • values() 함수
    dictionary의 value 들을 list 의 형태로 return

  • values() 함수를 다음 처럼 사용하면 for 반복구문에서 key 값 대신에 value 값들을 가지고 반복 로직을 실행 할 수 있다.

Both Keys And Values

key와 value 값 둘다 가지고 for 반복구문을 실행

  • items() 함수
    - Dictionary의 items() 함수는 key와 value를 tuple로 리턴
    - 다음처럼 for 반복구문에서 2개의 값을 동시에 받게 된다.

While Loop

while 문은 특정 조건문이 True 일동안 코드블록을 반복 실행한다.
list 같은 자료구조 없이도 반복구문을 실행한다.

while <조건문>:     
    <수행할 문장1>     
    <수행할 문장2>     
    <수행할 문장3>     
    ...
    <수행할 문장N>     
  • 특정 변수의 값의 초기 값이 0인데, 1씩 증가하여 10이 되기전까지 값의 변화를 출력하는 코드
number = 0

while number <= 10:
    print(number)
    number += 1
> 0
1
2
3
4
5
6
7
8
9
10

Break & Continue

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

While Else

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

좋은 웹페이지 즐겨찾기