본문 바로가기

파이썬

05/02 파이썬 9 - 파이썬의 for문

1) for문

 

내가 화면에 1부터 10까지 출력하려고 한다.

 

>>>print(1)
1
>>>print(2)
2
>>>print(3)
3
>>>print(4)
4
>>>print(5)
5
>>>print(6)
6
>>>print(7)
7
>>>print(8)
8
>>>print(9)
9
>>>print(10)
10
>>>

위와 같은 방식으로 코딩을 하면 화면에 1부터 10까지 출력할 수 있다. 하지만 너무 비효율적이고 귀찮다.

 

이럴 때 쓰는 것이 바로 for문이다.

 

>>>for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
	print(i)
    
    
1
2
3
4
5
6
7
8
9
10
>>>

 

위 코드는 for 문을 이용하여 함수 print를 오직 한번만 사용함으로써 아주 효율적이게 숫자 1부터 10까지를 화면에 출력한 모습니다.

 

위 for문을 해석해보자면 "파이썬 리스트 안에(in) 있는 i에 대해 print(i)하시오." 정도가 되겠다.

for문은 if문과 마찬가지로 for문의 끝에 콜론(:)이 있어야 하며, 실행문은 들여 쓰기 해야한다.

 

2) for와 range

 

위에서 간단히 숫자를 출력하는 프로그램을 만들어봤다.

위 프로그램의 숫자 범위는 1부터 10까지었고, 해당 숫자들을 모두 리스트에 집어 넣어 for문을 실행시켰다.

만약 숫자의 범위가 1부터 100까지라면 숫자를 모두 일일이 리스트에 넣어야 할까?

 

이 불편함을 해소할 수 있는 기능이 바로 range이다.

 

>>>for i in range(1, 10):
	print(i)
    
    
1
2
3
4
5
6
7
8
9
>>>

 

위 코드는 range와 for문을 이용하여 직접 리스트를 만들지 않고 쉽고 빠르게 1부터 9까지의 숫자를 출력했다.

 

여기서 주의해야할 점은 range의 시작 숫자는 범위에 포함되지만, 끝 숫자는 범위에 포함되지 않는다는 점이다.

 

3) for와 리스트, 튜플

 

for문과 리스트를 활용하여 내가 먹은 음식리스트를 만들고 그 음식을 먹었다고 화면에 출력하는 프로그램을 만들어보자.

 

>>> food = ["탕수육", "짜장면", "짬뽕"]
>>> for i in food:
	print("%s 꺼-억" % i)

	
탕수육 꺼-억
짜장면 꺼-억
짬뽕 꺼-억
>>>

 

food 라는 변수가 바인딩하는 리스트에 내가 먹은 음식 "탕수육", "짜장면", "짬뽕"을 넣고, for문으로 화면에 이 음식들을 먹었다는 신호를 출력하는 코드를 짜면된다.

 

"for i in food"에서 "i"는 변수 이름으로서 food 리스트의 원소를 하나씩 바인딩하는 역할을 한다.

"print("%s 꺼-억" % i)" 에서 "%s"는 food 리스트의 문자열이 출력될 위치를 뜻하고 맨 뒤의 i는 for문의 변수명으로 지정하면 된다.

 

위와 같은 방식으로 리스트에 있는 문자열을 for문을 통해 쉽게 출력할 수 있다.

 

튜플도 같은 방식으로 for문을 통해 문자열을 출력할 수 있다.

 

4) for와 딕셔너리

 

for문과 딕셔너리를 통해 메뉴판을 출력하는 프로그램을 작성해보자

 

>>>menu = { "짜장면": 5000, "짬뽕": 6000, "탕수육": 12000}
>>>

 

위 코드를 통해 menu라는 딕셔너리에 음식이름과 가격 정보를 넣었다. 이제 메뉴판을 for문을 통해 출력해보자.

 

>>>for food, price in menu.items():
	print("%s은 %s원" % (food, price))
    
    
짜장면은 5000원
짬뽕은 6000원
탕수육은 12000원
>>>

 

여기서 눈여겨 봐야할 점은 for문의 변수가 두개라는 점과 for문 끝의 items()이다.

 

딕셔너리는 리스트와 튜플과는 달리 한 원소에 키(Key)와 값(Value)이 있기 때문에 변수를 한개가 아닌 두개를 적어야 한다. 그리고 딕셔너리 이름 뒤에 .items()를 붙여야 키와 값을 불러올 수 있다.

 

실행문을 보면 변수가 2개이기 때문에 %s를 두번 사용하였고, % 뒤에 변수명을 지정할 때는 (food, price)과 같이 튜플로 표현했다.