brunch

You can make anything
by writing

C.S.Lewis

by 마르코 Jan 16. 2016

기간을 알려줘

<내 손 안의 비서> 첫 글

이 시리즈 <내 손 안의 비서> 목차

0. 파이썬 컴퓨터에 세팅하는 방법

1. 기간을 알려줘

2. 우리 점심 뭐 먹을까?

3. 파일 이름을 한 번에 바꿔줘

4. 취업을 도와줘

5. 쇼핑몰 순위를 뽑아보자

6. 엑셀은 제 좋은 친구죠

7. 내 브런치 독자를 알려줘

8. 브런치 글 좀 대신 올려줘


같은 매거진 다른 시리즈 <Imagine + Engineer>


같은 매거진 다른 시리즈 <개발 읽어주는 남자>




마치 민간인에게 프로그래밍 언어란, 판도라 상자 같은 느낌이다. 도대체 얼마나 괴물 같은 사람들이 앉아서 코딩을 하고 있는지 알기 힘들다. 하지만 프로그래밍이 어려워 보이는 데는, 직업 교육에 특화된 프로그래밍 교육이 크게 기여했다고 생각한다. 기본적으로 프로그래밍은 컴퓨터를 쉽게 조작하기 위해  탄생했다. 그리고 여전히 그 목적으로 훌륭하게 활용할 수 있다. '내 손 안의 비서'라는 시리즈를 통해서, 프로그래밍을 실생활에 사용하는 방법을 배워보자.


참고 : 파이썬 세팅하는 법


이번에는 파이썬으로 두 날짜의 기간을 구해보자. "맨 인 러브: 하나, 나랑 결혼 해줄래?"라는 글을 쓰던 중이었다. 사귄 날에서부터 프러포즈 한 날까지 구해야 했다. 인터넷에 '날짜 계산기' 같은 검색어로 해결할 수 있는 문제 었겠지만, 프로그래머답게 해결해 보기로 했다. 생각보다 답은 가까이 있었다. 파이썬 쉘(shell)을 열었다. 파이썬 쉘을 여는 방법은 위의 참고 글을 확인하면 된다. 그리고 단 두 줄의 코드로 기간을 구했다. 기간을 구하고 싶은 두 날짜가 2015년 1월 1일과 2016년 1월 5일이라고 생각해보자.  


>>> from datetime import date
>>> (date(2016, 1, 5) - date(2015, 1, 1)).days
369


위의 코드에서 ">>>"는 내가 입력한 것이 아니다. 저 부분을 따라 치지 않기 바란다. (파이썬 쉘을 열면 입력하는 부분은 저렇게 보인다. 그리고 결과는 "369"처럼 앞에  아무것도 따라오지 않고 결과가 나온다.) 저 코드를 보면 어떤 생각이 드는가? 이해하기 너무 어려운가? 사실 저 위에 두 번째 줄은 수학의 (a - b) * c 랑 비슷하게 생기지 않았나? 크게 다르지 않다.


제대로 알고 싶은 사람을 위해 간단하게 설명하면, 파이썬에는 datetime이라는 도구 상자가 있다.("from datetime") 영어로 date와 time을 붙여놓은 걸 보니, 날짜랑 시간을 다룰 수 있는 도구 상자인가 보다. 거기서 날짜에 해당하는 도구를 사용하려고 한다.("import date") 그리고 2016/1/5에서 2015/1/1일의 차를 구해서,("date(2016, 1, 5) - date(2015, 1, 1)") 그 기간을 구했으면 좋겠다.(".days")


연인의 기념일을 구하자


각자 사귄 날짜 혹은  결혼기념일이 다를 것이다. 그래서 지난 크리스마스 때 연애를 시작했다고 생각해보자. 물론 연인이 있는지부터 물어봐야 하는 거 아니냐고, 화내는 사람이 있을 수도 있겠다. 미안하다. 그렇다면 연인이 있다고 가정해보자. 위의 코드처럼 오늘 날짜를 궁금할  때마다, 매번 입력해줄 수도 있다. 하지만 4번쯤 칠  때부터 매우  귀찮아질 거다. 그렇다면 그 날짜와 오늘을 자동으로 비교했으면 좋겠다면? 답은 아래와 같다.


>>> from datetime import date
>>> (date.today() - date(2015, 12, 25)).days


나라면 이걸 lovedays.py 파일로 저장해두겠다. 다시 한 번, 말하지만 두 줄의 ">>>" 표시는 따라 치면 안된다. 그리고 아래에서 처럼 print()라는 괄호 안에 2번째 줄을 집어 넣으면 된다. 코드만 저장하고, 해당 파일이 있는 폴더에서 "python lovedays.py" 혹은 맥에서 파이썬 3을 설치한 사람이라면 "python3 lovedays.py"라고 치면 손쉽게 연애 기간을 알 수 있다.


lovedays.py

from datetime import date
print((date.today() - date(2015, 12, 25)).days)


하나 조언하자면, 눈으로 보기만 한 코드는 절대로 기억이 나지 않는다. 프로그래밍 언어는 외국어와 비슷해서 익숙해져야 원할 때 쓸 수 있다.




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


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