본문 바로가기
카테고리 없음

파이썬 - 반복문 만들기2

by 자본주의위너 2022. 3. 30.
반응형

파이썬을 이용해서 반복문 만드는 이유와 알고리즘을 이용한 이해 while 함수까지 지난번 포스팅에서 알게 되었다면 이이번에는 for 함수를 이용해서 반복문을 만드는 방법을 알아보도록 하겠습니다.

 

2022.03.23 - [분류 전체보기] - 파이썬 - 반복문 만들기1

 

파이썬 - 반복문 만들기1

파이썬을 하다보면 다양한 함수를 사용해서 원하는 결과값을 얻을 수가 있습니다. 그 중에서 반복문은 입문자들에게는 어렵지만 그냥 넘어가서는 안되는 중요한 구문 중에 하나라고 하는데요,

dms-accountant.tistory.com

 

목차

 

for 반복문

앞에서 while 반복문의 경우는 하나의 조건식만 만족한다면 계속해서 반복하는 간력한 반복문의 형태를 띄었습니다. 다만, while문의 경우는 조건식을 잘못 지정해 놓을 경우, 무한 반복 루프에 빠질 수 있다는 단점이 있습니다. 이 단점을 보안한 함수가 있는데 그게 for 반복문입니다. for 반복문은 반복할 횟수를 지정해 놓았기 때문에 무한 루프에 빠지는 경우가 없고, 딱 정해진 횟수만큼만 반복하여 결과값을 도출합니다.

형태

for a in 데이터 세트 :           

   반복 처리할 식

→ for ~ in ~ 이 하나의 세트라고 생각하시면 되고,

데이터 세트 값들을 a라는 변수에 하나씩 불러낸다고 생각하시면 됩니다. 만약 데이터가 3개라면 그 3개를 각각 a라는 변수 값에 불러서 반복 처리할 식에 대입하는 겁니다. 총 3번을 반복해서 수행하는 거죠.

 

간단한 예제를 살펴보겠습니다.

계란 한판 = [계란1, 계란2, 계란3]

for a in 계란 한판 :

   print("달걀 후라이")

라고 코드를 짰다면, 결과값으로

달걀 후라이

달걀 후라이

달걀 후라이

이렇게 총 3번의 함수가 반복되는 것을 알 수 있습니다. 리스트 함수만큼만 반복하게 되는 거죠.

 

조금 더 어려운 예제를 보시면,

60점 이상인 학생과 미만인 학생으로 나누는 문제입니다.

점수 = [80,50,35,90,70]                                   → 점수 분포도를 리스트 형태로 나타냈습니다.

학생수 = 0                                                   → 학생 개개인의 특성을 주기 위해서 변수를 별도로 설정합니다.

for i in 점수 :                                                → for문을 써서 총 5번 반복이 되도록 합니다.

   학생수 = 학생수+1                                     → '0'부터 시작해 '4'까지 들어가서 1~5까지 결과값을 도출합니다. 

   if i >= 60:                                                 → 조건절을 사용해서 학생 점수에 조건을 겁니다.

      print(str(number) + "번 학생 60점 이상")       → 학생 개개인의 번호를 문자열로 변경시킨 후에 출력합니다.

   else:                                                         → 위에 조건식에 만족하지 않는다면,

      print(str(number) + "번 학생 60점 미만")       → 이와 같은 값을 나오게끔 해라라는 뜻입니다.

 

for 함수와 range 함수 같이 쓰기

 for 함수와 가장 많이 같이 쓰는 함수는 range 함수입니다. 범위를 정해놓고 그 범위안에서 반복을 한다고 했는데, 그 범위를 지정해줄 수 있는 가장 최적의 함수가 바로 'range'입니다. range 함수의 형태를 살펴보면,

range( 시작값, 끝값, 증가값step ) 이 기본 구조인데, 우리는 시작값과, 증가값은 쓰지 않고, range( 끝값 ) 만 써도 값은 도출이 됩니다.

range 함수의 특징은

1) 정수생선을 하고, 시작값은 포함하고, 끝값은 포함하지 않습니다. 그래서 원하는 끝값까지 나오게 하고 싶다면 +1을 해줘야 합니다. 

for a in range(5):

    print(a)

→ 0, 1, 2, 3, 4

2) 시작값을 생략하면 0으로 간주합니다. 코딩 특성상, 숫자가 1에서 시작하는 게 아니라 0에서 시작합니다.

3) 증가값을 생략하면 1씩 증가하게 됩니다. 만약 2의 배수씩 뜨게 하고 싶다면,

for a in range(0,10,2):

    print(a)

→ 0, 2, 4, 6, 8   * 실제 값은 세로로 나옵니다. 별도 end=', ' 함수를 끝에 붙인다면 가로로 나오게 됩니다.

4) 증가값을 음수로 사용하면 역순으로 나옵니다.

for a in range(0,10,-2):

    print(a)

→ 8, 6, 4, 2, 0

 

break&continue 함수

 break와 continue를 for 함수 사용할 때 주로 사용하곤 합니다. 그 특징들을 살펴보면,

break는 현재 진행 중인 반복 처리를 중단하고, 전체 for 반복문을 종료한다는 뜻입니다. 즉, break이후에 어떠한 함수를 사용해서 식을 만들어도 그 식을 이용해서 결과값을 도출할 수 없다는 뜻입니다.

continue는 현재 진행 중인 반복 처리를 중단하되, 다음 횟수의 반복 처리를 진행한다는 뜻입니다. 즉, 이번 함수만 처리하지 않고, 바로 다음으로 넘어가겠다는 의미입니다.

break와 continue 중에 break가 조금 더 강한 느낌으로 다가오는 건 전체 문장을 종료시킬 수 있는 함수이기 때문인 거 같습니다.

 

 

 

반응형

댓글