Python_4. 반복문

13782 단어 TILpyTIL

대부분의 프로그래밍 언어에서는 반복되는 작업을 간단하게 처리하기 위해 반복문이라는 기능을 제공해줍니다. 반복문은 반복 횟수, 반복 및 정지 조건을 자유자재로 제어할 수 있습니다.

for

for의 기본구조

for 변수 in 리스트(또는 튜플, 문자열):
    수행할 문장1
    수행할 문장2

리스트나 튜플, 문자열의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입되어 "수행할 문장1", "수행할 문장2" 등이 수행된다.

#문자열
>>> menu_list = ['Pasta', 'Pizza', 'Salad'] 
>>> for i in menu_list: 
>>>    print(i) 
Pasta 
Pizza 
Salad
#튜플
>>> a = [(1,2), (3,4), (5,6)]
>>> for (first, last) in a:
...     print(first + last)
...
3
7
11

for 와 range함수

 for 변수 in range(횟수):
     반복할 문장

맨 윗줄에서 언급했던 문제를 for 와 range함수를 사용해 해결할 수 있게 되었다.

>>> for i in range(100):
>>> 	print('Hi!')
 
Hi!
... (생략)
Hi!
Hi!
Hi!

while

while은 조건식으로만 동작하는 반복문이다. while 반복문은 조건식을 지정하고 끝에 콜론:을 붙인 뒤 다음 줄에 반복할 코드와 변화식을 넣는다. 초기식은 특별한 것이 없고 보통 변수에 값을 저장하는 코드다. 또한 while 다음 줄에 오는 코드는 반드시 들여쓰기를 해줘야 한다.

while과 for의 차이

while은 for문과 같은 반복문 이지만 차이가 있다.이 전의 반복문 for는 시작과 종료가 정해져있는 반복문이다. 몇번 실행해야 할지 정해진 상태로 사용하는 반면 while은 얼마나 실행되어야 할지 정하지 않고 사용한다. 즉 시작이 없고 종료만 정해져 있다.

기본 구조와 과정

while 반복문은 조건식으로만 동작하며 반복할 코드 안에 조건식에 영향을 주는 변화식이 들어간다.


초기식
while 조건식:
     반복할 코드
     변화식
     
i = 0                          # 초기식
while i < 100:                 # while 조건식
     print('Hello, world!')    # 반복할 코드
     i += 1                    # 변화식 /  i = i+ 1

먼저 초기식이 시작하여 조건식을 판별한다. 조건식이 True일 경우엔 반복할 코드와 변화식을 함께 수행한다. 그리고 다시 조건식을 판별하여 True면 코드를 계속 반복하고, False면 반복문을 끝낸 뒤 다음 코드를 실행한다.

조건식 → 반복할 코드 및 변화식 → 조건식으로 순환하는 부분을 루프(loop)라고 하고 변수의 값이 조건 하에 있다면 계속해서 루프를 돌게 된다.

반복문 제어(break & continue)

반복문에서는 제어를 위해 break와 continue 두가지를 사용한다.break는 for와 while 문법에서 제어흐름을 벗어나기 위해 사용한다(루프 중단).
continuebreak와는 약간 차이가 있다. break는 제어흐름을 중단하고 빠져 나오지만, continue는 제어흐름(반복)을 유지한 상태에서 코드의 실행만 건너뛴다.

  • break: 제어흐름 중단
  • continue: 제어흐름 유지, 코드 실행만 건너 뜀

break

👆🏻:을 붙이지 않으니 주의해야 한다.

for

#for
for i in range(10000):  # 0부터 9999까지 반복
    print(i)
    if i == 100:    	# i가 100일 때
        break       	# 반복문을 끝냄. for의 제어흐름을 벗어남
#결과값
0
1
2
... (생략)
98
99
100

for에 range(10000)을 지정했으므로 0부터 9999까지 반복한다. 하지만 i가 100일 때 break가 실행되며 0부터 100까지만 출력되고 반복문을 종료한다.

while

#while        
i = 0
while True:    	    	# 무한 루프
    print(i)
    i += 1          	# i를 1씩 증가시킴
    if i == 100:    	# i가 100일 때
        break       	# 반복문을 끝냄. while의 제어흐름을 벗어남
#결과값
1
2
... (생략)
97
98
99

무한 루프를 만들고, 그 안에서 i를 1씩 증가시킨다. 그 다음 if를 사용하여 i가 100이 될 때 break를 실행한다. 이 때 무한 루프라도 break를 실행하면 반복문은 바로 종료되기 때문에 0부터 99까지만 화면에 출력된다.

continue

for

🔍 홀수만 출력하기

#for
for i in range(100):       # 0부터 99까지 증가하면서 100번 반복
    if i % 2 == 0:         # i를 2로 나누었을 때 나머지가 0면 짝수
        continue           # 아래 코드를 실행하지 않고 건너뜀
    print(i)
#결과값    
1
3
5
... (생략)
95
97
99

0부터 99까지 반복하는 반복문을 만든 후 if를 사용하여 i가 짝수이면 continue를 실행한다( i를 2로 나누었을 때 나머지가 0이면 짝수, 0이 아니면 홀수 ). 그리고 print를 사용하여 i의 값을 출력한다.

i가 짝수이면 continue를 실행하여 print를 건너뛰고, 홀수이면 print로 숫자를 출력한다.

while

🔍 짝수만 출력하기


#while 
i = 0
while i <= 100:        
    i += 1            # i를 1씩 증가시킴
    if i % 2 != 0:    # i를 2로 나누었을 때 나머지가 0이 아니면 홀수
        continue      # 아래 코드를 실행하지 않고 건너뜀
    print(i)
#결과값    
2
4
6
... (생략)
96
98
100

0부터 100까지 반복하는 반복문을 만들고 i를 1씩 증가시킨 뒤 if를 사용하여 i가 홀수면 continue를 실행한다. 그리고 print를 사용하여 i의 값을 출력한다.
i의 값에 따라 continue 아래에 있는 print를 건너뛰어 짝수만 출력되게 된다.

중첩 루프(다중 루프)

출처 https://dojang.io/mod/page/view.php?id=2241
         https://wikidocs.net/22
         https://rfriend.tistory.com/343
https://dojang.io/mod/page/view.php?id=2247
http://pythonstudy.xyz/python/article/11-%EB%B0%98%EB%B3%B5%EB%AC%B8

좋은 웹페이지 즐겨찾기