콘텐츠로 건너뛰기
Home » python » 페이지 15

python

Bool in Python

if True: 는 if 1: 보다 느리다. 적어도 파이썬 2에서는. 파이썬 2에서 True, False는 키워드가 아니며, 런타임에서 “평가”된다. 하지만 파이썬 3에서는 키워드로 등재되면서 1, 0 과 성능상의 차이가 없다.

양음력 날짜 변환 데이터 얻기

예전 한국천문연구원에서 운영하던 천문우주지식 정보 사이트에서 양/음력 변환기를 제공하면서, 관련된 알고리듬이나 데이터를 따로 제공해주지 않아서 말이 많았었는데, 시간이 오래 지나고 세상이 바껴서 그런지 이제 양음력변환은 오픈 API를 통해서 구할 수 있다. 그 외에도 네이버 캘린더 등을 통해서 양음력 변환이 가능하니, 방법은 많이 있다고 봐도 좋겠다. (업데이트 2022년 2월) https://www.data.go.kr/data/15012679/openapi.do 참고로 우리 나라에서 사용하는 음력 달력은 한국천문연구원에서 계산하여 발표하는 결과를 사용하고 있으며, 만년력 개념으로 두고두고 적용할 수 있는 일반적인 알고리듬이 공개되어 있지는 않다. (비공개라기 보다는 매년 측량을 통해서 오차를 갱신하고 필요한… 더 보기 »양음력 날짜 변환 데이터 얻기

instapush로 메시지 푸시 전송 요청을 보내보자

instapush라는 서비스가 있어서 예전에 그냥 시험삼아 끄적거려 봤는데, 너무 대충이라 간단히 레시피 식으로 어떻게 푸시를 보내는지 알아보는 시간을 가져보자. instapush는 홈페이지에서 계정을 생성한 후 자신의 애플리케이션을 등록하고 필요한 필드들을 설정한 다음, 요구되는 조건에 맞게 REST API를 호출해주면, instapush 앱이 설치된 스마트폰으로 푸시 메시지를 보내주는 서비스이다. 실제로 엄청나게 간단하기 때문에 쉽게 푸시 전송을 보낼 수 있다. 회원 가입 및 앱 생성 먼저 instapush 홈페이지에 가서 회원가입을 한다.  그런다음 Dashboard의 Apps 탭으로 가면 애플리케이션을 만들라는 버튼이 있다. [+ Add Application] 버튼을 클릭해서… 더 보기 »instapush로 메시지 푸시 전송 요청을 보내보자

Pages: 1 2

Subprocess 모듈 사용법 – 파이썬에서 서브 프로세스를 생성하기

Subprocess 모듈 이란?

subprocess 모듈은 파이썬 프로그램 내에서 새로운 프로세스를 스폰하고 여기에 입출력 파이프를 연결하며 리턴코드를 획득할 수 있도록 하는 모듈로, 다른 언어로 만들어진 프로그램을 통합, 제어할 수 있게 만드는 모듈이다. 이 모듈은 기존에 오랜된 몇몇 모듈과 함수(os.system, os.spawn*)들을 대체하기 위해 만들어졌다. (혹은 os.popen 같은 함수도…)

더 보기 »Subprocess 모듈 사용법 – 파이썬에서 서브 프로세스를 생성하기

파이썬의 이름공간과 변수의 스코프

네임스페이스(name space, 이름공간)이란 프로그래밍 언어에서 특정한 엔티티를 이름에 따라 구분할 수 있는 범위를 말하는 것이다. 소스코드를 작성할 때 가장 어려운 일 중 하나는 변수나 함수의 이름을 정하는 것인데, 충돌이 발생하지 않도록 변수/함수의 이름을 모두 유니크하게 만드는 것은 현실적으로 불가능하다. 모든 이름을 외우고 있기도 어렵거니와, 여러 사람이 협업하는 경우에 다른 사람이 쓸 이름까지 다 알 수는 없기 때문이다.

그래서 프로그래밍언어에서는 네임스페이스라는 개념을 도입하여, 특정한 하나의 이름이 통용될 수 있는 범위를 제한한다. 따라서 소속된 네임스페이스가 다르다면 같은 이름이 다른 개체를 가리키도록 하는 것이 가능해진다.

더 보기 »파이썬의 이름공간과 변수의 스코프

오일러 프로젝트 009

둘레의 길이가 1000이고 각 변의 길이가 자연수인 직각삼각형 찾기 세 자연수 a, b, c 가 피타고라스 정리 를 만족하면 피타고라스 수라고 부릅니다 (여기서 ). 예를 들면 이므로 3, 4, 5는 피타고라스 수입니다. a + b + c = 1000 인 피타고라스 수 a, b, c는 한 가지 뿐입니다. 이 때, a × b × c 는 얼마입니까? 삼각형의 세 변의 길이를 짧은 것 부터 a, b, c 라하자. ( ) 이 때 a 가 가장 커질 수 있는 경우는 ,… 더 보기 »오일러 프로젝트 009

오일러 프로젝트 08

접근 리스트 내 임의의 위치에서부터 연속한 5개의 값을 얻고, 이 수들의 누적곱을 구할 수 있으면, 0부터 955 사이의 위치에 대해 이 계산을 적용한 후 최대값을 구하면 된다. 리스트를 xs라 하고, 특정한 위치 pos에서 다섯 개의 연속한 원소를 구하기 위해서는 슬라이싱 문법을 사용할 수 있다. 누적곱은 루프를 돌면서 곱해도 되고, reduce() 함수를 사용해서 리스트를 접어서 만들수도 있다.

파이썬에서 제네릭 함수 정의하기 – singledispatch

어떤 하나의 함수 (혹은 겉으로 보기에 이름이 다른 여러 다른 함수)가 여러 타입의 인자를 받고, 인자의 타입에 따라 적절한 동작을 하는 함수를 제네릭 함수라고 한다. C++이나 Swift에 이런 제네릭 관련 기능이 언어 레벨에서 지원되는데, 사실 파이썬은 동적 타입 언어이기 때문에 언어수준의 명시적인 제네릭 지원 기능은 없다.1 파이썬의 제네릭 비록 파이썬이 동적 타입 언어이기는 하지만, 파이썬 내에는 제네릭과 비슷한 함수들이 있다. 기본 함수 중 len() 함수는 리스트, 집합, 사전, 문자열 등 타입에 대해 객체의 길이값을 구할 수 있다. 이 때 길이는 구하는 방법은… 더 보기 »파이썬에서 제네릭 함수 정의하기 – singledispatch

오일러 프로젝트 07

소수를 크기 순으로 나열하면 2, 3, 5, 7, 11, 13, … 과 같이 됩니다. 이 때 10,001번째의 소수를 구하세요.(http://euler.synap.co.kr/prob_detail.php?id=7) 접근 소수판별함수를 만들어볼 차례이다. 사실 이 블로그를 통틀어서 여러 번 소개한 적이 있다. 소수를 판별하기 위해서는 기본적으로 2, 3, … n – 1 까지의 수를 모두 나눠보아야 한다. 하지만 만약 n이 소수가 아니라면 n = p * q 로 표현할 수 있을 것이며, p <= q 라면 2 에서부터 n의 제곱근 사이에 p가 등장해야 한다. 따라서 n의 제곱근 이하에서만 검사를하면 검사… 더 보기 »오일러 프로젝트 07

오일러 프로젝트 06

1부터 10까지 자연수를 각각 제곱해 더하면 다음과 같습니다 (제곱의 합).1^2 + 2^2 + … + 10^2 = 385 1부터 10을 먼저 더한 다음에 그 결과를 제곱하면 다음과 같습니다 (합의 제곱).(1 + 2 + … + 10)^2 = 55^2 = 3025 따라서 1부터 10까지 자연수에 대해 “합의 제곱”과 “제곱의 합” 의 차이는 3025 – 385 = 2640 이 됩니다. 그러면 1부터 100까지 자연수에 대해 “합의 제곱”과 “제곱의 합”의 차이는 얼마입니까? (http://euler.synap.co.kr/prob_detail.php?id=6) 접근 1부터 100까지를 제곱한 수의 합과, 1부터 100까의 합의 제곱의… 더 보기 »오일러 프로젝트 06