본문 바로가기
Tech Stack/Python

반복문 ( for , while )

by jaeaemin 2021. 7. 24.
 for

 

파이썬에서 주로 사용하는 반복문은 for문 , while문 종류가 있다.  파이썬에 for문은 반복문은 시퀀스를 이용하여 명령을 반복한다.

먼저 for문의 기본 구조는 아래와 같다.

for 변수 in [ 리스트 or 튜플 or 문자열 ] :
    실행할 코드 
    ...

 

이 때 for문 변수를 2개 이상으로 설정 가능하다. 물론 이 때, in안의 반복되는 시퀀스도 2개 이상이어야 한다. 

예를 들면 아래와 같다.

list = [ (1, 2), (3, 4), (5,6) ]
for (f, b) in list:
     실행할 코드
     ....

이 예시에서 in 뒤에 튜플 2개 값을 하나의 시퀀스로 가지는 리스트를 받고있다. 따라서 한 번의 반복을 돌 때마다 변수 2개가 할당 가능하다. 이때 f에는 튜플의 첫번째 값 , 그리고 b에는 튜플의 2번째 값이 들어가서 코드가 실행되고 그 뒤로 리스트의 마지막까지 반복하게 된다.

 

 

 

range()

리스트나 튜플 처럼 정해진 배열 순서에 따라 반복문을 진행할 때도 있지만, 단순히 횟수나 연속적인 숫자 할당을 위해서 반복문을 진행하는 경우도 자주 있다. 그런경우 range()를 사용하는 것이 일반적이다. 

range 문은 for 문에서 사용가능한 리스트를 자동으로 만들어주는 함수이다. 이 때 range는 시작 숫자 , 끝 숫자 , 스탭으로 나누어 사용하는데 range ( 시작, 끝, 스탭 ) 으로 표현한다. 주의할 점은 시작하는 숫자는 포함하고 끝 숫자는 포함하지 않는다는 점이다.

예시로 range를 통한 구구단 출력은 아래와 같다. 

for i in range(2, 10):
     for j in range(1, 10):
          print(i*j, end = " ")
    print('')

2, 4, 6 ... 
3, 6, 9....

 

 

 

리스트 내포 

간단한 for문의 경우 ( 반복문 본문 내용이 적은 ) 리스트 안에 for 문을 포함하는 리스트 내포를 사용하면 코드를 간결하게 작성할 수 있다.

리스트 내포의 일반 문법은 다음과 같다

[ 표현식 for 항목 in 반복가능객체 if 조건문 ]

 

예시로 1과 10의 리스트에서 짝수만 res라는 배열에 담는다는 코드를 작성한다면 아래와 같이 작성할 수 있다.

num_list = range(1,10)
res = [ num * 3 for num in num_list if num % 2 == 0]
res

 

물론 중첩 반복문으로 표현하는 것도 가능하다 위에서 표현한 구구단 코드를 리스트 내포를 통한 코드로 바꿔보자

gugu = [ x * y  for x  in  range(2, 10) 
                         for y  in  range(1, 10)
              ]
gugu 

 

 

 

 

while

while 문은 시퀀스로 반복문이 이루어지는 것이 아니라 어떠한 조건이 참이 될 때까지 반복문을 게속 진행한다는 점에서 for문과 차이가 있다.  특히 while문 같은 경우는 어떠한 신호를 받기 전까지 게속 해서 대기상태를 유지하기 위한 무한 루프에 자주 활용된다.

""" n이 5 이상의 값을 가질 때까지 반복하는 while문 """
n = 0
while  n < 5
    n = n + 1 
    print(n)



""" 무한 루프 """
while True: 
     반복문 바디 
     종료시킬 수 있는 조건을 설정하여야 함

 

반응형

'Tech Stack > Python' 카테고리의 다른 글

파일  (0) 2021.07.27
함수  (0) 2021.07.26
집합 & 불 자료형  (0) 2021.07.21
문자열 & 리스트  (0) 2021.07.20
튜플 & 딕셔너리  (0) 2021.07.20