brunch

You can make anything
by writing

C.S.Lewis

by 마르코 Jan 23. 2016

우리 점심 뭐 먹을까?

오늘부터 우리 점심 걱정은 안하는거다?

아래 링크는 <내 손 안의 비서> 첫 글이자 전체 목차




대학생에게도, 직장인에게도 점심 메뉴는 골칫덩어리다. 특히 선택 장애가 많은 사람들의 모임은 점심이 다가오면 혼란의 도가니가 된다. 매일 점심 때 누군가 내가 무엇을 먹어야 될지 알려준다면?


중식, 일식, 한식 중에서 고른다고 생각해보자. 다시 한 번 써보면,

- 중식
- 일식
- 한식

우리에겐 이런 리스트가 있는 셈이다. 파이썬에서는 이런 목록을 대괄호([])안에 감싼다.

>>> menu = ["중식", "일식", "한식"]
">>>" 표시는 파이썬 쉘을 나타낸다. 자세한 내용은 앞의 글("파이썬 컴퓨터에 세팅하는 법")을 참고하자. 그리고 메뉴를 쌍따옴표("")로 감싸놓은 것도 주의한다.


이제 여기서 하나를 골라야 한다면?

>>> import random
>>> index = random.randrange(0, 3)
>>> menu[index]

코드를 설명하면, 임의의 값을 사용할 수 있는 도구 상자를 준비한다.("import random") 리스트에서 아이템 하나를 뽑기 위해, 0에서 2사이의 숫자를 뽑아서 index라는 이름표를 붙여놓는다.("index = random.randrange(0, 3)") 프로그래밍에서 순서는 0부터 시작한다는 걸 명심하자. 다시 말해, 위의 menu라는 리스트는 총 3개의 아이템을 가지고 있다. 그러면 일상 생활에서는 첫 번째(1), 두 번째(2), 세 번째(3) 순으로 순서를 매긴다. 하지만 프로그래밍에서는 0번째, 1번째, 2번째가 된다. randrange() 라는 함수는 두 번째 넣는 숫자를 포함하지 않는다는 것도 주의하자. randrange(0, 3)은 0, 1, 2 중에서 숫자 하나를 뽑는다. 그리고 임의로 뽑힌 순서의 아이템을 뽑아낸다.("menu[index]",)


자, 이제 생각을 좀 더 심화시켜보자. 보통은 먹을 수 있는 메뉴의 종류는 엄청나게 많다. 매번 그걸 다 입력한다고 생각하면 머리가 아프다. 따로 음식점 목록을 텍스트 파일에 저장을 해두고, 그걸 불러서 랜덤으로 뽑아주면 어떨까?


우선 바탕화면에 "menu.txt"라는 파일을 하나 만든다. 그리고 매 줄마다 음식점 이름을 하나씩 넣는다.


~/Desktop/menu.txt

한식
일식
중식

편의상 나는 위에서 써놓은 이름을 그대로 사용하니, 따라해 볼 때는 실제로 가는 식당 이름을 넣어보도록 하자.


그리고 맥이라면 터미널을, 윈도우라면 파워쉘을 열고 바탕화면 폴더로 이동한다.(맥의 경우, 'cd ~/Desktop') 파이썬 쉘을 연다.('python', 맥에서 파이썬3를 사용한다면, 'python3')


>>> import random
>>> file = open('menu.txt')
>>> lines = file.readlines()
>>> lines
['한식\n', '일식\n', '중식\n']
>>> count = len(lines)
>>> index = random.randrange(0, count)
>>> lines[index]

코드를 설명하면, open 함수는 파이썬으로 파일을 연다.("file = open('menu.txt')") 물론 실제로 그 파일을 실행하는 것은 아니고, 파이썬이 해당 파일을 읽어오는 것이다. 그리고 그 파일의 전체 라인을 불러온다.("lines = file.readlines()") 전체 목록에서 랜덤한 순서를 뽑아오려면 리스트의 전체 사이즈를 알아야한다. 물론 우리가 입력한 파일에는 항목이 3개만 있지만, 매일 menu.txt 파일에 식당 이름을 추가하면서 파이썬 코드를 고쳐주는 것은 피곤한 일이다. 리스트의 전체 길이를 가져온다.("count = len(lines)") 그리고 그 길이를 이용해서 임의의 숫자를 하나 가져온다.("index = random.randrange(0, count)") 해당 순서로 아이템을 꺼내온다.("lines[index]")


이제 바탕화면에 있는 menu.txt와 함께 select_menu.py 파일로 해당 코드를 옮겨놓기만 하면, 매일 내가 먹어야 할 것을 알려주는 비서를 만들 수 있다. 파일을 다른 곳에 옮기고 싶다면, 텍스트 파일과 파이썬 파일을 같은 폴더에 놓기만 하면 된다.


~/Desktop/select_menu.py

import random
file = open("menu.txt")
lines = file.readlines()
count = len(lines)
index = random.randrange(0, count)
print(lines[index])


문제는 사람들이 자기가 먹고 싶은게 나올 때까지 계속 돌리게 된다는 단점이 있지만, 그래도 삶을 훨씬 편하게 만들어 줄 수 있다.




프로그래밍은 외계어가 아닙니다. 실생활에서 쓸 수 있는 프로그래밍을 알립니다. 그리고 댓글이 달릴수록 더 쉬워집니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari