파이썬 for문 누적합 - paisseon formun nujeoghab

1. 반복문(for문, while문)

1-1. 반복문이란?

프로그램에서 특정 코드를 반복해서 사용하고 싶을 때 사용하는 것이다.
반복문의 종류에는 for문과 while문 2가지가 있다.

1-2. 반복문 맛보기

# ex1. for문으로 반복 출력하기 for x in range(5): # 5번 반복한다는 의미 print('안녕하세요.')# ex2. while문으로 반복 출력하기 x = 0 while x < 5: # while 뒤에 나오는 조건식이 참인 경우에만 반복 print('안녕하세요.') x += 1

2. for문

2-1. for문의 기본 구조

# ex3. 1~10까지 정수의 합계 구하기 sum = 0 for i in range(1, 11): # 1부터 10까지 (마지막 숫자는 포함 X) sum += i print('i의 값 : %d, 합계 : %d' % (i, sum))👉 실행 결과 i의 값 : 1, 합계 1 i의 값 : 2, 합계 3 i의 값 : 3, 합계 6 i의 값 : 4, 합계 10 i의 값 : 5, 합계 15 i의 값 : 6, 합계 21 i의 값 : 7, 합계 28 i의 값 : 8, 합계 36 i의 값 : 9, 합계 45 i의 값 : 10, 합계 55

📢 해석
for문은 range 범위만큼 반복되고, 반복하는 동안 들여쓰기 되어 있는 문장들이 수행된다.
그래서 총 10번의 반복이 이루어졌고, sum + i의 결과가 다시 sum에 저장되어 누적 합계를 구할 수 있다.


2-2. range() 함수를 활용하여 반복

앞의 예제와 같이 for문은 range()함수와 함께 사용되는 경우가 많다.
range() 함수는 다음과 같이 총 3가지 유형이 있다.

# 유형1 for 변수 in range(종료값): 문장1 문장2 ...# 유형2 for 변수 in range(시작값, 종료값): 문장1 문장2 ...# 유형3 for 변수 in range(시작값, 종료값, 증감값): 문장1 문장2 ...

이와 같은 구조를 for문 예제에 직접 적용시켜보자.

# range()의 유형 for i in range(10): # ----------- 유형1 print(i, end='') print() for i in range(1, 11): # -------- 유형2 print(i, end='') print() for i in range(1, 10, 2): # ----- 유형3(증가) print(i, end='') print() for i in range(20, 0, -2): # ---- 유형3(감소) print(i, end='') # end = ''를 쓰는 이유 : 실행결과를 한 줄로 나타내기 위해👉 실행 결과 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10 1 3 5 7 9 20 18 16 14 12 10 8 6 4 2

2-3. 문자형인 경우의 반복

for문에서 문자열을 처리하는 방식은 다음과 같다.

for 변수 in 문자열: 문장1 문장2 ...

아래의 예제를 통해 이해를 해보자.

word = input('영어 문장을 입력하세요 :') for x in word: print(x)👉 실행 결과 영어 문장을 입력하세요 : I see! I s e e !

for문의 반복 루프에서 변수 x는 문자열 word 각 문자의 값을 하나하나를 가진다.
('I', ' ', 's', 'e', 'e', '!'를 하나씩 가진다는 의미이다.)
따라서 print(x)에 의해 출력되는 문자열은 하나하나씩 출력되며, 세로로 출력된다.


3. 이중 for문

3-1. 이중 for문의 이해

이중 for문은 for문 내에 또 for문이 있는 형태이다.
구구단표를 만드는 과정을 통해 이중 for문의 구조와 활용법을 익혀보자.

< 구구단표 만드는 과정 >
1. for문을 이용하여 2단 구구단표를 만들기
2. 이중 for문을 활용해 전체 구구단표 만들기 (1~9단)

# Step1. 2단 구구단표 만들기 a = 2 for b in range(1, 10): c = a * b print('%d x %d = %d' % (a, b, c))👉 실행 결과 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18

구구단을 생각해보면, 단에 해당하는 숫자는 항상 같고, 뒤에 곱해지는 수만 바뀐다.

이처럼 2단 구구단표를 작성하려면 2는 항상 고정이 되어야 하고,
1~9까지의 수가 반복되어 곱셈이 수행되어야 한다.

그래서 단에 해당하는 값을 변수 a에 주었고, b는 for문을 통해 1~9까지의 수를 반복하였다.


Step2. 전체 구구단표 만들기 print('-' * 50) # 단마다 구분하기 위해서(테두리 생성) for a in range(2, 10): # --------- (1) for b in range(1, 10): # ----- (2) c = a * b print('%d x %d = %d' % (a, b, c)) print('-' * 50) # 단마다 구분하기 위해서(테두리 생성)

이중 for문은 첫 번째 for문에서 반복될때 두 번째 for문도 함께 반복하는데, (1)에서 1번 반복할때 (2)에서는 전체를 반복한다. 또, (1)에서 다음 반복과정이 수행될 때 (2)에서는 앞에서 수행된 것과 같이 다시 한 번 전체를 반복한다.

즉, (2)는 항상 (1)이 반복될때마다 매번 전체가 반복되며, 이 과정은 (1)의 전체를 반복할 때까지 계속한다.

  • 이 예제를 보면, (1)은 2~9까지고, (2)는 1~9까지이다.

  • 바로 위에서 말했다시피 (1) 1번 수행될때 (2)는 매번 1~9 전부 다 수행된다.

  • 따라서 (1)은 구구단 몇단에 해당하는지를 나타내고 있고, (2)는 곱해지는 수임을 알 수 있다.

    즉, (1)의 첫 번째 수인 2가 한 번 수행될 때, 2x1, 2x2, 2x3, ..., 2x9이 수행되며, 2 다음인 3에서도 3x1, 3x2, 3x3, ..., 3x9 이며, (1)의 마지막인 9에서도 9x1, 9x2, 9x3, ..., 9x9 가 수행된다.

Toplist

최신 우편물

태그