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)과 같이 튜플로 표현했다.
'파이썬' 카테고리의 다른 글
05/07 파이썬 11 - 중첩 루프 (nested loop), 2차원 데이터 (0) | 2020.05.08 |
---|---|
05/04 파이썬 10 - while, break, continue (0) | 2020.05.04 |
05/02 파이썬 8 - 파이썬의 if 문 (0) | 2020.05.02 |
04/29 파이썬 7 - boolean, 비교연산자, 논리연산자 (0) | 2020.04.29 |
04/28 파이썬 6 - 튜플과 딕셔너리 (0) | 2020.04.28 |