(Python) 그 날짜가 몇 주째인지 계산하기
특정한 년,월,일을 입력 받았을 때 그 날짜가 해당 월의 몇 째 주에 속하는지를 알려주는 함수를 작성해보자. 예를 들어 2020년 4월 27일 월요일은 4월의 5주차에 해당하는 날이다. 2020년 5월 15일은 2주차에 해당하는 날이다. 27, 15일은 각각 7로 나누는 것만으로도 3주나 차이가 나는데, 정확한 계산방법은 무엇일까?
더 보기 »(Python) 그 날짜가 몇 주째인지 계산하기특정한 년,월,일을 입력 받았을 때 그 날짜가 해당 월의 몇 째 주에 속하는지를 알려주는 함수를 작성해보자. 예를 들어 2020년 4월 27일 월요일은 4월의 5주차에 해당하는 날이다. 2020년 5월 15일은 2주차에 해당하는 날이다. 27, 15일은 각각 7로 나누는 것만으로도 3주나 차이가 나는데, 정확한 계산방법은 무엇일까?
더 보기 »(Python) 그 날짜가 몇 주째인지 계산하기우리는 값을 출력할 때 print()
함수를 사용한다. (python2에서 print
는 구문이었지만, python3에서는 함수로 바뀌었다.) print()
함수는 전달 받은 인자를 문자열로 변환하여 표준 출력을 통해서 해당 문자열을 내보낸다. 만약 print(1)
이라고 하면 정수 객체를 표현하는 문자열인 "1"
을 생성하여 이것을 출력하는 것이다.
하지만 경우에 따라서는 출력되는 값이 이런 저런 양념을 넣어야 할 때가 있다. 고정된 폭에 맞추어 출력하거나 숫자값의 경우에는 세자리마다 콤마를 넣거나 소수점 자리수를 한정해야 할 때도 있다. 공학 계산의 결과를 출력할 때에는 유효숫자의 자리수 만큼 값을 표시하기 위한 서식을 적용해야 할 때도 있다.
더 보기 »파이썬 미니포맷(format()) 사용법몇 년 전에 argparse의 사용법을 간단하게 정리한 글을 발행했는데, 우연히 몇 가지 찾아보다 보니 기능설명의 나열만 읽어봐서는 애매한 부분도 많고 원하는 형태로 설정하는 것도 계속 헷갈려서 큰 맘 먹고 총정리 하는 마음으로 새로운 글을 하나 써보기로 마음 먹었다. 오늘은 명령줄 인자를 파싱하는 도구인 argparse를 어떻게 사용하는지, 그리고 몇몇 경우에 있어서 옵션의 동작을 어떻게 설정하는지를 좀 더 자세히 살펴보고자 한다.
더 보기 »예제로 알아보는 argparse 사용법지난 시간에 이어서 간단한 클래스 예제를 통해서 클래스를 작성하고 활용하는 방법을 살펴보도록 하겠다. 그리고 객체가 가지는 추가적인 비밀스런(?) 메소드나 속성에 대해서도 조금 더 알아보겠다.
개인적으로 데이터나 함수를 묶어두는 용도로 굳이 클래스를 써야하는가에 대해서는 회의적인 입장이다. 모든 객체인스턴스는 속성이나 메소드를 참조하기 위해서는 내부적인 lookup 과정을 거치기 때문에 사실상 사전으로 대체하는 것도 무방하다고 생각한다. 그럼에도 불구하고 이번에는 클래스로 정의해두는 것이 훨씬 더 사용성을 높이고 편리하게 사용될 수 있는 케이스에 대해서 접근해보겠다.
더 보기 »벡터를 클래스로 표현하기 (Python)클래스를 설명할 때 흔히 쓰는 표현은 ‘클래스는 거푸집에 해당하고 객체는 그 거푸집으로 찍어내는 벽돌에 해당한다.’는 것이다. 물론 완전히 틀린 설명은 아닌데, 이 개념에서 출발해서 클래스를 이해하는 것은 객체와 클래스의 관계와 클래스를 어떻게 다룰 것인지 등 여러 관점을 정립하는데 많은 어려움을 유발한다.
이 글은 파이썬 초보자들이 클래스에 대해 접근하고 이해하는데 도움을 주고자 작성됐다.
파이썬에서 통용되는 가장 중요한 대전제는 모든 것이 객체라는 것이다. 1, 2와 같은 숫자값도 C처럼 원시값이 아니라 int 타입의 객체이다. 함수 역시 객체이고 모듈이나 패키지도 객체처럼 취급된다. 모든 것이 객체라면, 클래스 그 자체도 객체라는 말이된다. 그럼 이 시점에서 다시 한 번 되물어보자. 도대체 객체란 무엇인가?
더 보기 »[Python] 클래스 이해하기(참고: 이 문제는 81번 문제의 좀 더 어려운 버전입니다)
아래와 같은 5×5 행렬이 있습니다. 맨 왼쪽 열의 아무곳에서나 출발하여 위/아래/오른쪽으로만 움직이면서 맨 오른쪽 열까지 갈 때, 빨갛게 표시된 경로의 합이 994로 가장 작습니다.
31kB 짜리 파일 matrix.txt에는 80×80 행렬의 정보가 들어있습니다. 위와 같은 방법으로 이 행렬의 맨 왼쪽 열에서 출발하여 오른쪽 열까지 갈 때, 경로 합의 최소값은 얼마입니까?
더 보기 »오일러 프로젝트 8277번문제는 앞선 문제인 76번이나 31번과 완전 같은 문제라 할 수 있다. 다만 동전의 액면가가 N 보다 작은 소수들이면 된다.
더 보기 »오일러 프로젝트 77오일러 74번 문제는 자릿수의 계승(팩토리얼)값을 합하는 연산에 대한 문제이다.
더 보기 »프로젝트 오일러 74파이썬에서 파일의 내용을 읽어와서 처리할 때 가장 기본적인 방법은 opne() 함수를 이용해서 파일 객체를 만들고, read() 메소드를 이용해서 파일의 전체 내용을 한 번에 읽어오는 것이다. 그런데 많은 경우에 실제로 다루는 파일은 텍스트포맷인 경우가 많다. 텍스트 포맷을 다룰 때에는 다음과 같은 몇 가지 전략이 존재한다. read()를 이용해서 파일의 전체 내용을 읽어와 하나의 문자열로 사용한다. readlines()를 이용하면 파일의 전체 내용을 읽어와서 라인 단위로 잘라 문자열의 리스트로 만들 수 있다. readline()을 이용해서 파일의 내용을 한 줄씩 읽어와서 처리한다. 실제로는 텍스트 파일을 한줄 단위로… 더 보기 »파이썬으로 구현하는 스트림리더
ZMQ의 기본 개념을 다루면서 ZMQ에서는 몇 가지 코어 메시징 패턴이 있다고 언급했다. 이 중에서 REQ-REP 패턴에 대해서는 에코 서버를 구현하면서 소개하였다. 이 글에서는 ZMQ 메시징 패턴에 대해 각각의 예시에 대해서 언급해보겠다.
더 보기 »ZMQ의 메시지 패턴