Coding & Programming/Python 기초(A-Z)

[Python:파이썬:기초] 12. for 문(반복문)

mainCodes 2021. 5. 21. 22:11

[Python:파이썬:기초] 12. for 문(반복문)

 

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و

 

파이썬의 for문은 range() 함수를 비롯하여 List, Tuple, String의 시퀀스를 반복하는 용도로도 사용될 수 있습니다. 다음은 range()를 이용한 기본적인 for문의 구조입니다.

 

for 변수 in range(변수 초기값, 반복횟수, 변수 증가량)
    코드1
    ...    

for 변수 in range(반복횟수)
    코드1
    ...    

for 변수 in range(변수 초기값, 반복횟수)
    코드1
    ...            

 

range() 함수 파라미터 중 변수 초기값, 변수 증가량이 생략된 경우 변수 초기값은 0부터 시작하고 변수 증가량은 +1씩 증가합니다.

 

for문은 다음과 같이 여러 자료형(List, Tuple, String)들과 연동이 가능합니다.

 

for 변수 in 자료형(List, Tuple, String)
    코드1
    ...

 

이 경우에는 별도의 [0], [1] ... [n]과 같은 인덱싱은 불필요하면 for문이 다음 요소(element)를 변수에 대입해 줍니다.

 

마지막으로 for문은 List Comprehension을 지원합니다. 이 경우 List 안에 다음과 같이 계산식, if문 [조건식]을 포함시킬 수 있으며 필요에 따라 if문 [조건식]은 생략이 가능합니다.

 

[표현식 for 변수 in 리스트 if [조건식]]

[
  표현식1 for 변수1 in 리스트1 if [조건식1]
  표현식2 for 변수2 in 리스트2 if [조건식2]
  ...
  표현식n for 변수n in 리스트n if [조건식n]
]

list(표현식 for 변수 in 리스트 if [조건식])

이 외에도 파이썬은 리스트 자료형의 List Comprehension과 유사하게 Set 자료형의 Set Comprehension, Dictionary 자료형의 Dict Comprehension 내에서 for문을 사용하여 set, dict를 생성할 수 있습니다.

 

예제는 range()함수, List, Tuple, String, 중첩 for문, break, continue, List Comprehension, 2차원 리스트, 2차원 행렬의 덧셈 등 위에서 언급한 여러 형태의 for문의 예를 보여줍니다.

 

🔗 for 문 예제(Example):

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
f1 = 'Hello' #String
f2 = ['banana''grape''orange'#List
f3 = ('apple''watermelon''persimmon'#Tuple
f4 = [12345678910]
f5 = [[1,2], [34], [56]]
f6 = [[10,20,30], [405060]]
f7 = [[1,2], [34], [56]]
f8 = [[10,20], [3040], [5060]]
 
# 0에서 3보다 작을 때까지 반복(0~2, 3번 반복, i가 1씩 증가)
for i in range(3):
    print(i, end=' ')
print("")    
 
# 2에서 6보다 작을 때까지 반복(2~5, 4번 반복, i가 1씩 증가)
for i in range(26):
    print(i, end=' ')
print(""
 
# 2에서 15보다 작을 때까지 반복, i가 2씩 증가
for i in range(2152):
    print(i, end=' ')
print(""
 
#f1 String의 원소(한문자)를 하나씩 출력
for i in f1:
    print(i, end=' ')
    
print("")    
 
#f2 List의 원소를 하나씩 출력
for i in f2:
    print(i, end=' ')
 
print("")        
 
#f3 Tuple의 원소를 하나씩 출력
for i in f3:
    print(i, end=' ')    
else:
    print("\n더 이상 원소가  없습니다.")    
   
#중첩 for문
for i in f2:
    for j in f3:
        print(i, j)    
   
#반복하다가 i가 3이면 for문 탈출
for i in range(10):
    if(i==3): 
        break
    print(i, end=' ')
    
print("")    
 
 
#반복하다가 i가 3이면 현재 반복 중단 후 다시 for문 실행
#반복이 중단되므로, 3은 출력되지 않음
for i in range(7):
    if(i==3): 
        continue
    print(i, end=' ')
    
print("")    
 
#pass    
for i in range(7):
    pass
    
print("")    
 
#List Comprehension - 리스트 생성
print([i + 1 for i in f4 if i % 3 == 0])
print(list(i * 2 for i in f4 if i % 3 == 0))
 
#Set Comprehension
 
#2차원 리스트 출력
for i, j in f5:
    print(i, j)
    
print("")
 
#2차원 리스트 출력
for i in range(len(f6)):          # 세로 크기
    for j in range(len(f6[i])):   # 가로 크기
        print(f6[i][j], end=' ')
    print("")
    
print("")
 
#f6, f7 2차원 행렬의 덧셈
for i in range(len(f7)):          # 세로 크기
    for j in range(len(f7[0])):   # 가로 크기
        print(f7[i][j]+f8[i][j], end=' ')
    print("")
print("")    
cs

 

🔗 실행결과(Output):

 

 

이상 JollyTree였습니다 (•̀ᴗ•́)و