for 변수 in 리스트(or 문자열, 튜플):
수행문장 1
수행문장 2
…
리스트(or 문자열, 튜플)의 첫 번째 요소부터 마지막 요소까지 순서대로 변수에 대입되어
수행문장 1, 수행문장 2 등이 수행된다.
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점 미만일 때 불합격을 출력한다.
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문의 처음으로 돌아간다.
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 입력
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일 때 21, 22, 23, …, 2*9가 차례로 수행되며, print()로 넘어간다.
그 다음 a가 3, 4, 5, …, 9까지 반복 수행한다.