본문 바로가기
Python/닭치고 Algorithm

9강 for문(Python Algorithm 9 for)

by OneHundredPlan 2020. 3. 22.
반응형

9강 for문(Python Algorithm 9 for)

 

부제 : 알고리즘을 배우면서 파이썬 기초부터 RPG까지 정복

내용 : 초중고 또는 코딩 기초 입문자를 위한 누구나 따라 배울 수 있는 Python Algorithm 프로그램 기초 강의

 

1. 파이썬 기초 입문자

2. 알고리즘 기초에서 수학 기초

3. 기초 코딩

4. Text RPG Project

 

[동영상강의]

https://youtu.be/hN5j2_3OJp8

 

Python-Algorithm-9-for문.pdf
0.31MB

 

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 를 배워보도록 합시다.

 

 

댓글