당신은 멋쟁이, 우리는 장고쟁이~

0%

Python 기초 9편 - for 반복문

For 반복문


대부분의 다른 프로그래밍 언어들과 비슷하게, 파이썬도 for 반복문을 가지고 있습니다.


하지만, C 혹은, Pascal 같은 언어들과는 조금 차이점이 존재합니다.


파이썬에서 for 반복문은, 리스트, 문자열, 튜플 등과 같이 순서가 있는 자료들의 요소들을 순회할때 사용됩니다.


또한, for 반복문은 range() 내장 함수를 사용하여, 다른 컨테이너로부터 요소들을 접근하기 위해 사용되기도 합니다.


기본 구조는 아래와 같습니다.


1
2
3
4
for 변수명 in sequence형자료: 
statement1
statement2
...

Parameter


Name Description
변수명 for 반복문을 순회할때마다, 새로운값을 가지는 변수명을 가르킵니다
sequence 리스트, 문자열, 튜플 등과 같이 순서가 있는 자료형
statement1 statement2 순회중 각 요소마다, 실행할 코드 블럭들

Example


1
2
3
4
# for 반복문 예시 
color_list = ['Red', 'Blue', 'Green', 'Black']
for c in color_list:
print(c)

위의 예시에서 color_list 는 sequence 형 (즉, 순서가 존재하는, 순회 가능한) 자료로, 몇가지 색깔 이름을 가지고 있는 리스트 입니다.


for 반복문이 실행되면, 아래와 같은 작업을 실행합니다


  1. 첫번째 요소인 ‘Red’ 가 변수명 c 에 할당이 됩니다. 그리고, print(c) 를 실행 하여, ‘Red’를 출력합니다.

  2. 두번째 요소인 ‘Blue’가 변수명 c 에 할당이 됩니다. 그리고 print(c) 를 실행 하여, ‘Blue’ 를 출력합니다.

  3. 세번째 요소인 ‘Green’이 변수명 c 에 할당이 됩니다. 그리고 print(c) 를 실행하여, ‘Green’을 출력합니다.

  4. 네번째 요소인 ‘Black’’이 변수명 c에 할당이 됩니다. 그리고 print(c)를 실행하여, ‘Black’을 출력합니다.


for 반복문과 range() 함수


range() 함수는 연속적인 정수들의 리스트를 반환합니다. range() 함수는, 한개, 두개 혹은 3개의 파라미터를 가지고 있고. 이중 마지막 파라미터 2개는 옵션입니다. for loop 에 꽤나 보편적으로 사용되는 함수 입니다.


예를들면,


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# range(4) 는 0 부터 4 이전의 숫자로 된 리스트를 반환합니다. 
# 따라서, 아래 코드는 for a in [0, 1, 2, 3]: 과 같은 효과를 가집니다.
for a in range(4):
print(a)

for a in [0, 1, 2, 3]:
print(a)


# range 의 시작지점과 끝 지점을 정할수 있습니다
print("range의 시작지점과 끝 지점을 정할수 있습니다")

# 아래 range 는, 2 부터 시작하고, 7의 바로 이전 숫자인 6에서 끝납니다.

for a in range(2, 7):
print(a)

print("파라미터의 마지막값을 지정합니다")

# 기본값으로, 시작지점부터 끝지점까지 1씩 증가하는 요소들을 리스트에 넣어 리스트를 반환하지만,
# 파라미터의 마지막값을 지정하여, 지정한 숫자만큼 증가하는 요소들을 리스트에 넣어 생성할수 있습니다.
for a in range(2, 19, 5):
print(a)


tuple, list, dictionary 순회


for 반복문은 sequence 가 존재하는 자료인, tuple, list, dictionary 들을 순회하여 반복작업을 수행 할수 있습니다.


튜플 순회하기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
# for 반복문을 사용하여 tuple 순회하기 
# numbers 튜플을 생성
numbers = (1, 2, 3, 4, 5, 6, 7, 8, 9)
count_odd = 0
count_even = 0

for x in numbers:
if x % 2:
count_odd += 1
else:
count_even += 1

print("짝수의 갯수 :", count_even)
print("홀수의 갯수 :", count_odd)

위의 예시에서, numbers 튜플을 순회하며, 각 요소들을 x 라는 변수에 할당을 하고.


각 순회마다, x 가 짝수인지 홀수인지 구분하여, 짝수의 갯수와 홀수의 갯수를 세어 냅니다.


리스트를 순회하기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# for 반복문을 사용하여 list 순회하기 
# datalist 리스트를 생성
# 다른 타입들을 가지고 있는 요소를 가진 리스트를 순회하며, print 를 할수 있습니다.

datalist = [1452, 11.23, 1+2j, True, 'django', (0, -1), [5, 12],
{"class": 'V', "section": 'A'}]

for item in datalist:
print(item, "의 타입은", type(item), "입니다")

-----------------------------------------------------------------------------
1452 의 타입은 <class 'int'> 입니다
11.23 의 타입은 <class 'float'> 입니다
(1+2j) 의 타입은 <class 'complex'> 입니다
True 의 타입은 <class 'bool'> 입니다
django 의 타입은 <class 'str'> 입니다
(0, -1) 의 타입은 <class 'tuple'> 입니다
[5, 12] 의 타입은 <class 'list'> 입니다
{'class': 'V', 'section': 'A'} 의 타입은 <class 'dict'> 입니다

사전 순회하기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# for 반복문을 사용하여, dictionary 순회하기 
# key 와 value 로 이루어진 사전을 생성


color = {"c1": "Red", "c2": "Green", "c3": "Orange"}

for key in color:
print(key)

print("color.keys() 를 사용하여 key 값만 순회 ")

# key 값만 순회
for key in color.keys():
print(key)

print("color.values() 를 사용하여 value 값만 순회")
for value in color.values():
print(value)