9강 for문(Python Algorithm 9 for)
부제 : 알고리즘을 배우면서 파이썬 기초부터 RPG까지 정복
내용 : 초중고 또는 코딩 기초 입문자를 위한 누구나 따라 배울 수 있는 Python Algorithm 프로그램 기초 강의
1. 파이썬 기초 입문자
2. 알고리즘 기초에서 수학 기초
3. 기초 코딩
4. Text RPG Project
[동영상강의]
9. for 문(for)
반복문인 for문은 매우 유용하고 프로그래밍 언어를 배울 때 if 와 더불어 가장 많이 사용하는 문법입니다.
for 문 기본 구조
for 변수 in 리스트(또는 튜플, 문자열):
수행할 문장1
수행할 문장2
...
리스트와 튜플을 배우지 않았으므로 range 로 대신해서 설명을 하겠습니다.
range 는 5강 재귀호출 팩토리얼 에서 설명을 하였으므로 range로 하면 무리가 없을 것 같습니다.
for 문을 사용하면 1부터 10까지 더하는 것을 쉽게 구현할 수 있습니다.
>>> sum = 0
>>> for i in range(1, 11):
... sum = sum + i # TAB 키로 들여쓰기 반드시 해야 함
... # ENTER 키 눌러서 for 문 블럭이 끝남을 구분
>>> print(sum)
55
for와 range 이용한 구구단
>>> for i in range(2, 10): # ① 2 에서 9까지
... for j in range(1, 10): # ② 1에서 9까지
... print(i*j)
...
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
>>>
엄청나게 길게 주욱 출력이 됩니다.
print함수가 종료될 때 끝을 줄바꿈 문자(\n)로 하기 때문입니다.
그러면 줄바꿈 문자로 끝나지 않게 하면 되겠군요.
print 함수 종료시에 줄바꿈 문자 대신에 다른 것을 넣기 위해 end 를 사용합니다.
다시 코딩을 합니다.
>>> for i in range(2, 10):
... for j in range(1, 10):
... print(i*j, end="~")
...
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~>>>
end="~" 로 하였으므로 print 함수 종료시 줄바꿈 문자 대신에 ~ 이 들어가므로 줄바꿈이 되지 않을 것입니다.
흠, 이것도 우리가 원하는 형식은 아니죠.
~ 대신에 공백을 넣도록 합시다.
>>> for i in range(2, 10):
... for j in range(1, 10):
... print(i*j, end=" ")
...
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 >>>
이제 2단 3단 이렇게 넘어갈 때 다음 줄에 나타나도록 합시다.
2단이 끝날때 print 에 문자 대신에 아무것도 입력되지 않게 하면 종료시 줄바꿈 문자 \n이 자동으로 들어가므로
줄바꿈이 자동으로 되겠죠.
다시 코딩합시다.
>>> for i in range(2,10): # ①
... for j in range(1, 10): # ②
... print(i*j, 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
>>>
-
① 에서 2 부터 9까지 숫자를 생성합니다.
-
2를 꺼집어 내어 i 에 대입을 하여 i = 2 가 됩니다.
-
② 에서 1 부터 9까지 생성합니다.
-
1을 꺼집어 내어 j 에 대입을 합니다.
-
③ 에서 2 * 1 =2 을 출력하면서 2 끝에 공백을 넣습니다.
-
② 에서 2 를 꺼집어 내어 j 에 대입을 합니다.
-
③ 에서 2 * 2 =4 를 출력하면서 4 끝에 공백을 넣습니다.
-
이 과정을 ②에서 9를 다 꺼집어 낼 때까지 진행합니다.
-
④ 에서 줄바꿈이 되게 해서 i = 3 되는 3단 부터는 다음 줄에서 출력되게 합니다.
다른 단을 줄로 표시해서 구분을 해 봅시다.
print("=" * 50)
for i in range(2, 10):
for j in range(1, 10):
print(i*j, end=" ")
print('')
print('-' * 50)
==================================================
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
--------------------------------------------------
이번 강의에서 for 문을 이 정도만 하시면 될 것 같습니다.
구구단을 여태 배운 짧은 파이썬 지식만으로도 짤 수 있는 것만 해도 큰 수확입니다.
다음 강의는 if 를 배워보도록 합시다.
'Python > 닭치고 Algorithm' 카테고리의 다른 글
11강 재귀호출 sum(Python Algorithm 11 Recursive call sum) (0) | 2020.03.25 |
---|---|
10강 if문(Python Algorithm 10 if else) (0) | 2020.03.23 |
8강 자료형-문자열(Python Algorithm 8 Data Type-String) (0) | 2020.03.20 |
7강 자료형-숫자형 bool(Python Algorithm 7 Data Type-Number bool) (0) | 2020.03.01 |
6강 재귀호출 팩토리얼2(Python Algorithm 6 Factorial2) (0) | 2020.03.01 |
댓글