반복문(for문)

Shinbbb·2022년 8월 15일
0
post-thumbnail

1. for문 기본 구조

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

리스트(or 문자열, 튜플)의 첫 번째 요소부터 마지막 요소까지 순서대로 변수에 대입되어
수행문장 1, 수행문장 2 등이 수행된다.

2. for문 예제

2-1. 기본 for문

basic = [1, 2, 3, 4, 5]

for i in basic:
  print(i)
  
1
2
3
4
5

basic의 첫 번째 요소인 1이 먼저 변수 i에 대입된 후 print(i)를 수행한다.
그리고 두 번째 요소인 2가 변수 i에 대입된 후 print(i)를 수행한다.
basic 마지막 요소까지 이것을 반복한 후 for문을 빠져나오게 된다.

2-2. 연습 문제

<문제> 점수가 70점 이상이면 합격, 그렇지 않으면 불합격이다. 5명의 학생의 시험 점수에 따라
합격, 불합격 결과를 알려주세요.
score = [88, 92, 61, 55, 70]

student = 0

for result in score:
  student = student + 1
  if result >= 70:
    print("%d번 학생: 합격" % student)
  else:
    print("%d번 학생: 불합격" % student)

1번 학생: 합격
2번 학생: 합격
3번 학생: 불합격
4번 학생: 불합격
5번 학생: 합격

학생에게 번호를 부여하기 위해 student 변수를 사용하였다.
점수 리스트 score에서 차례대로 변수 result에 대입하고 for문의 문장을 수행한다.
for문이 한 번씩 수행될 때마다 student는 1씩 증가한다.
코드를 실행하면 result가 70점 이상일 때 합격을 출력하고 70점 미만일 때 불합격을 출력한다.

3. for문과 continue

for문의 문장을 수행하는 과정에서 특정 조건을 만족하게 되면 for문의 처음으로 돌아가서 다시 수행한다.

<문제> 점수가 70점 이상이면 합격, 그렇지 않으면 불합격이다. 5명의 학생의 시험 점수에 따라
합격 결과를 알려주고 불합격자에게는 별도로 알려주지 마세요.
score = [88, 92, 61, 55, 70]

student = 0

for result in score:
  student = student + 1
  if result < 70:
    continue
  print("%d번 학생: 합격" % student)
  
1번 학생: 합격
2번 학생: 합격
5번 학생: 합격

점수가 70점 미만은 학생은 result < 70이 참이되어 continue문이 수행된다. 따라서 합격을 출력하는 print문을 수행하지 않고 for문의 처음으로 돌아간다.

4. for문과 break

for문을 반복하여 수행하다가 특정 조건을 만족하게 될 때 반복문을 그만돌리려면 break를 사용한다.

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 ,15]

for b in a:
  if b == 8:
    break
  print(b, end = ' ')

1 2 3 4 5 6 7

a는 1부터 15까지의 리스트이다.
변수에 a의 리스트를 순서대로 대입하고 b가 8이 되면 멈출 수 있게 break를 입력해주었다.
그리고 출력하는 것을 한 줄로 보기 위에 end 입력

5. for문과 자주 사용하는 range 함수

ranege 함수는 연속된 정수를 만들어주는 함수이다.

5-1. range 함수 기본 구조

1. range(start)
2. range(start, stop)
3. range(start, stop, step)

1. a = range(10)
print(list(a), end = ' ') #range 함수의 값을 바로 확인하기 위해 list로 변환

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2. a = range(1, 10)
print(list(a), end = ' ')

[1, 2, 3, 4, 5, 6, 7, 8, 9]

3. a = range(1, 10, 2)
print(list(a), end = ' ')

[1, 3, 5, 7, 9]

Q_2. a = range(1, 10)을 입력하면 1부터 9까지 출력된다.
10까지 출력하고 싶다면 a = range(1, 11)로 입력하면 된다.
range(start, stop)에서 stop은 -1까지 출력한다.

Q_3. a = range(1, 10, 2)에서 step은 간격을 나타낸다.
따라서 1, 3, 5, 7, 9가 출력되는 것이다.

5-2. range 함수 예시
1) for와 range 함수를 사용하여 1부터 N까지의 합을 구해보았다.

N = int(input())
sum = 0

for i in range(1, N+1):
  sum = sum + i
  print(sum, end = ' ')
  
1 3 6 10 15 21 28 36 45 55

range(1, N+1)은 1부터 N까지의 정수이다.
따라서 i 변수에 1부터 N까지 하나씩 순서대로 대입되면서
sum = sum + i 문장을 반복 수행하고 sum은 최종적으로 55가 된다.

2) for와 range 함수를 사용하여 구구단을 출력해보았다.

for a in range(2, 10): # 1번 for문
  for b in range(1, 10): # 2번 for문
    print(a * b, end = ' ')
  print()
  
2 4 6 8 10 12 14 16 18 
3 6 9 12 15 18 21 24 27 
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81

1번 for문에서 2부터 9까지의 정수가 a변수에 대입된다.
a가 2일 때 2번 for문이 실행되며, 2번 for문 1부터 9까지의 정수가 b에 대입된다.
print(a b)를 수행한다.
따라서, a가 2일 때 2
1, 22, 23, …, 2*9가 차례로 수행되며, print()로 넘어간다.
그 다음 a가 3, 4, 5, …, 9까지 반복 수행한다.

profile
Back-End Engineer

0개의 댓글