PYTHON_반복

while문

while문은 조건식이 참인 동안 문장1을 반복하여 실행한다. 즉 조건식이 참이면 일단 while문 내의 문장을 한 번 실행하고, 다시 조건식을 계산하며 그 결과가 참이면 계속해서 반복하게 된다. 이러한 과정에서 조건이 거짓이 되면 while문의 실행은 끝나게 된다. 결과적으로 while문은 어떤 문장을 0번 이상 반복하게 된다.

 

만일 처음 계산했을 때 바로 거짓이 되는 경우에는 바로 while문이 끝나게 되므로 while문 내에 문장이 한 번도 실행되지 않을 수도 있다.

 

3만원씩 반복하는 적금1

또한 이 프로그램은 몇 번 적금했는지 적금 횟수를 세도록 확장할 수 있다. 이 횟수를 위해 변수 count를 사용하며 while문 내에서 적금할 때마다 count 값을 1씩 증가시킨다.

 

3만원씩 반복하는 적금2

 

화씨-섭씨 변환 표 출력

 

온도 변환 메뉴 프로그램

이 프로그램은 먼저 온도 변환 메뉴를 보여주고 메뉴 선택에 따라 온도 변환을 수행하여 결과를 출력한다.

while menu != 3: 때문에 menu에 3이 입력되기 전까진 "메뉴를 선택하세요"가 뜬다.

 

for 문

순서형 자료를 이용한 for문

파이썬에서 for문은 문자열, 리스트, 튜플, 사전, 파일 등과 같은 순서형sequence 자료를 사용하여 각 원소에 대해 순차적으로 어떤 일을 반복할 수 있다. 

for문은 반복을 제어하기 위해 변수를 사용하는데 이 변수에 순서형 자료에 있는 각 원소가 하나씩 대입되면서 문장을 반복하여 실행하게 된다. 이러한 변수를 루프 제어 변수라고 한다.

for 변수 in 순서형 자료:
    문장1

 

홀수 합 계산

 

여러 사람에게 새해 인사

 

for문을 이용하여 파일의 각 줄에 대해서 반복하는 것도 가능하다. 파일을 사용하기 위해서는 open함수를 이용하여 해당 파일을 열어야 한다.

 

총점 평균 계산

for 루프 내에서는 하나의 점수를 나타내는 한 줄을 int 함수를 이용하여 정수로 변환하고 이 정수 값을 total에 더하고 count를 1씩 증가시킨다.

 

정수 범위를 이용한 for문

for문은 특히 일정 범위의 정수들에 대해 반복하는 데 많이 사용되는데 정수 범위는 range함수를 이용하여 쉽게 표현할 수 있다.

range(n)은 0부터 n-1까지의 정수 범위를 나타내고 range(n, m)은 n부터 m-1까지의 정수 범위를 나타낸다. 

또한 정수 범위를 정할 때 증가값을 줄 수도 있는데 range(n, m, k)은 n부터 시작해서 k만큼씩 증가하여 m-1까지의 정수들로 이루어진 범위를 나타낸다. 

 

 

range를 이용한 for 루프 예제

이 for문은 반복을 제어하기 위해 변수 count를 사용하고 있으며, 변수 count값이 0부터 99까지 1씩 증가하면서 각 수에 대해 count값을 출력한다.

for 문 내에는 어떤 문장이나 올 수 있다. 이러한 기능을 이용하면 보다 다양한 일들을 수행할 수 있다.

 

2의 거듭제곱 출력

 

for 루프를 활용한 36개월 적금

 

2개월마다 5만원씩 36개월 적금

 

for문을 이용하여 화씨 온도를 섭씨 온도로 변환하여 10도 단위로 출력

 

range의 증가값이 음수일 수도 있다.

 

카운트다운하는 for 루프 예제

 

break/continue문

break문은 for 루프나 while 루프 내에서 어떤 조건이 만족되면 중간에 루프에서 빠져 나오는 데 사용된다. 

이 프로그램에서는 찾고자 하는 기온을 입력받고 리스트 첫 번째 원소부터 그 기온을 찾기 시작해서 그 값을 찾으면 더 이상 리스트를 살펴볼 필요가 없다.

 

최고기온 리스트에서 특정 기온 찾기

else:

print("찾지 못함")

추가해야 됨

while 루프 대신에 for 루프를 사용해서 다음과 같이 다시 작성할 수 있다.

for index in range(len(temps)):
    if remps[index] == target:
        break

혹은

for index, x in enumerate(temps):
    if x == target:
        break
    

 

continue 문은 while루프나 for루프 내에서 현재 반복을 중단하고 다음 반복으로 건너 뛰는 데 사용된다.

i 값이 4의 배수인 경우에 continue문을 사용하면 continue 다음에 나오는 print문이 수행되지 않는다. 결과적으로 0, 4, 8을 제외하고 출력하게 된다. 

 

중첩 루프

 

구구단 2단 출력

안쪽 for 문에 의해서 내부 문장이 M번 반복되고 이 for 문이 N번 반복되므로 내부 문장은 전체적으로 N*M번 반복해서 수행된다.

 

while 루프를 이용한 구구단 출력

 

각 학생의 점수 합 계산

한 학생의 국영수 점수 합을 계산한 후에는 이를 stud 리스트에 추가한다(append). 따라서 stud 리스트에는 각 학생의 국영수 점수 합이 리스트 형태로 저장된다.

 

 

 

 

 

댓글을 작성해보세요.

채널톡 아이콘