1. 배운 내용
2. 작성한 코드
3. 숙제
배운 내용
반복문 중첩
반복문을 여러개를 겹쳐서 사용하는 것을 중첩 반복문이라 한다.
2개가 겹쳐 있으면 2중 반복문, 3개가 겹쳐 있으면 3중 반복문이라 부른다.
예제1 - 99단 출력 프로그램
i = 2
while i <= 9:
j = 1
while j <= 9:
print(i, ' x ', j, ' = ', i * j)
j = j + 1
i = i + 1
''' 출력 결과
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
.
.
.
9 x 8 = 72
9 x 9 = 81
'''
i를 2~9 까지, j를 1~9 까지 반복하게 하여 구구단을 출력하는 프로그램이다.
탭을 통해 while문의 범위를 확실하게 잡아주어야 한다.
for문
내가 원하는 횟수 만큼 반복하고 싶을 때 for문을 사용하면 while문 보다 더 편하게 반복문을 작성할 수 있다.
for 변수이름 in range(반복 횟수):
코드
코드
코드
.
.
[ for i in range(10): ] 이라는 코드라면 총 10번의 반복을 진행하게 된다.
여기서 유의해야 할 점은 반복문이 진행될 때마다 i의 값이 0 에서 9 까지 증가한다는 것이다. 컴퓨터가 숫자를 0 부터 센다는 것을 기억하자.
예제2 - 1~100 까지 합 구하기
sum = 0
for i in range(101):
sum = sum + i
print(sum)
''' 출력 결과
5050
'''
for문을 이용해 1~100 까지의 합을 구하는 프로그램이다.
작성한 코드
for.py
예제1의 while문으로 작성했던 99단 코드를 for문으로 대체한 코드이다.
- 주목해야할 점
- while문과 동일한 동작
- while문과 달리 i와 j를 직접 바꿔주지 않아도 되는 for문의 편리함
- i와 j의 값이 0 부터 시작되어 8로 끝나기 때문에 +1을 해준뒤 사용 => 이후 보다 간단하게 해결하는 방법을 설명해주겠음
for i in range(9):
for j in range(9):
print((i+1), ' x ', (j+1), ' = ', (i+1) * (j+1))
''' 출력 결과
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
.
.
.
9 x 8 = 72
9 x 9 = 81
'''
숙제
문제 1번
아래의 코드에서 while문 대신 for문을 사용하도록 수정하세요.
복사 붙여넣기 허용! 하지만 직접 치는걸 권장.
friendCount = 6
appleNumbers = [ 0, 0, 0, 0, 0, 0]
i = 0
while i < friendCount:
print(i, end='')
appleNumbers[i] = int(input("번째 친구가 가져갈 사과는 몇 개인가요?: "));
i = i + 1
i = 0
while i < friendCount:
print(i, "번째 친구가 가져간 사과의 개수는 ", appleNumbers[i], "개 입니다.")
i = i + 1
문제 2번
다음 코드에서 반복되는 코드를 for문을 사용해서 수정하세요.
scores = [ 0, 0, 0, 0, 0 ]
print(0, end='')
scores[0] = int(input("번쨰 과목의 성적을 입력하세요: "))
print(1, end='')
scores[1] = int(input("번쨰 과목의 성적을 입력하세요: "))
print(2, end='')
scores[2] = int(input("번쨰 과목의 성적을 입력하세요: "))
print(3, end='')
scores[3] = int(input("번쨰 과목의 성적을 입력하세요: "))
print(4, end='')
scores[4] = int(input("번쨰 과목의 성적을 입력하세요: "))
print('총점은 ', scores[0] + scores[1] + scores[2] + scores[3] + scores[4], '점 입니다.')
문제 3번
위 for문을 사용한 구구단 예제에서 짝수단(2단, 4단, 6단, 8단)만 출력하도록 수정해보세요.
문제 4번
(이 문제는 난이도가 좀 있으니 해보고 싶은 사람만 풀어봐도 괜찮음)
중첩 반복문을 사용하는 문제
사용자에게 가로,세로 길이를 입력 받아 [가로 x 세로] 크기의 체크무늬 패턴을 출력하세요.
- 프로그램 실행 예
가로 입력: 5 세로 입력: 5 @ # @ # @ # @ # @ # @ # @ # @ # @ # @ # @ # @ # @ ------------ 가로 입력: 3 세로 입력: 4 @ # @ # @ # @ # @ # @ # ------------ 가로 입력: 10 세로 입력: 2 @ # @ # @ # @ # @ # # @ # @ # @ # @ # @
숙제를 끝내면 선생님 카톡으로 다 했다고 연락 주렴!