본문 바로가기

파이썬

(54)
[Python] 윈도우 cmd 창에서 python 을 입력하면 윈도우 스토어 설치화면이 나온다. python 을 실행하기 위해서 cmd 창 (명령창, 콘솔창)에서 python ... 을 입력하였는데, 파이썬이 실행되지 않고 윈도우 스토어가 열리면서 python 설치유도 화면이 뜨는 경우가 있다. python 을 이미 설치했는데도 이렇게 뜬다면, 윈도우 운영체제가 python.exe 를 찾지 못해서, 윈도우 스토어의 python 설치화면을 띄운 것이다. python 을 설치하면서, python 의 설치패쓰를 PATH 환경변수에 등록하는 설정을 하고 설치하였다면, 이와 같은 문제가 생기지 않는다. 윈도우 cmd 는 사용자가 입력한 명령을 실행할 실제 실행파일을 찾기 위해서 PATH 변수에 등록된 경로들을 주르륵 탐색한다. python 이라고 입력했다면, python.exe, python.bat, .....
[EP 032] 복면산 39 x 186 = 7254 39 x 186 = 7254 란 등식에는 1부터 9까지의 모든 수가 등장한다. A x B = C 꼴이 되고 1부터 9까지의 숫자를 한번씩 모두 사용할 수 있도록 표현되는 C가 되는 모든 C의 합은 얼마일까? (A' x B' = A x B = C 인 C도 있으나 한번만 합산한다.) 무한 for문 겹치기 신공으로 무식하게 풀었다. #!/usr/bin/env python # http://projecteuler.net/index.php?section=problems&id=32 # # Solve # #### abc #### #### x de #### #### ----- #### #### fghi #### # # Or # #### abcd #### #### x e #### #### ----- #### #### fg..
[EP 023] 두 과잉수의 합으로 나타낼 수 없는 모든 수의 합 완전수는 자신보다 작은 약수의 합이 자신과 같은 수이다. 예로는 6, 28 등이 있다. 과잉수는 이 합이 자신보다 큰 것을 말한다. 두 과잉수의 합으로 나타낼 수 없는 모든 양의 정수의 합은? 자신을 포함하는 모든 약수의 합, 즉 약수함수가 곱셈적이라는 성질 때문에 재귀함수를 만들거나 캐시리스트를 만드는 방식으로 "쪼개서" 문제를 해결하는 전략을 쓸 수 있다. 아래코드는 s 라는 리스트에 약수함수값을 저장하여 n의 약수함수값을 s[n] 으로 가져올 수 있고, n = p q 일 때에, 가장 작은 소수인수를 만나면, s(n) = s[p] s[q] 라는 성질을 이용하여, 차례대로 s 리스트를 채우는 방식으로 문제를 풀어본 것이다. # PROJECT EULER # PROBLEM 23 def s_f(n): """..
pip install 시 Visual C++ is required 메시지와 함께 설치에러가 발생하는 이유 파이썬 패키지들은 소스로 제공될 경우도 있고, 미리빌드된 휠(prebuilt wheel)로 제공될 경우도 있습니다. 미리빌드된 휠은 소스를 각 플랫폼 (리눅스, 윈도우, 맥, 32비트, 64비트 등등) 에 맞게 누군가가 미리 빌드하여 제공하는 것이기 때문에, "현재" 가장 대중적인 플랫폼에 대해 우선적으로 제공됩니다. 2020년 현재는 32비트 파이썬은, 64비트 버전에 비해 덜 대중적입니다. 따라서 32비트 파이썬을 설치한 경우에는 pip 설치시에 이러한 에러를 만날 확률이 큽니다. (마찬가지로 파이썬 2.7 버전, 또는 나온지 오래된 3.4, 3.5 등등, 그리고 이제 막 새롭게 버전이 출시되었을 때에도) 물론 적절한 컴파일 환경 ( vc 컴파일환경 등 ) 을 설정한 경우에는 소스를 컴파일하여 잘 설..
'python'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 파이썬을 처음 배우는 초보자들이 윈도우에서 파이썬 스크립트를 실행하려고 할 때 제목과 같은 에러 메시지가 나올 때가 있다. c:\Users\me>python hello.py `python`은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. python 설치 디렉토리가 실행파일들을 찾는 PATH 환경변수에 포함되지 않아서 발생하는 에러이다. 이 문제를 해결하기 위해선 다음과 같은 방법이 있다. 한가지 방법은 파이썬을 지우고 다시 설치하면서 설치 중에 환경변수 추가던가 하는 걸 체크하고 설치하면 된다. 다른 방법은 명령중에 python 부분을 py 로 바꾸어 입력하여 실행해 보는 것이다. 즉, python hello.py 대신에 py hello.py 를 입력하고 엔터하여 ..
아나콘다에서의 패키지 설치 아나콘다(Anaconda)에서 패키지 설치시에 개인적으로 지키려는 원칙 conda install 로 설치해본다. conda install -c conda-forge 명령으로 설치해 본다. 인터넷에서 anaconda + 패키지명 으로 검색하여, anaconda.org 사이트 페이지가 검색되면, 검색페이지에서 소개하는 채널을 이용하여 conda install -c 명령으로 설치한다. 위 모든 것이 실패하였을 때에, pip install 한다. pip install 시 디펜던시로 설치된 패키지들 중에 conda install 이 가능한 패키지가 있다면, pip uninstall 한 후에 conda install 로 다시 설치한다. 그리고 base 는 작업용으로 사용하지 않고, 작업용으로는 반드시 conda c..
팩토리얼이 어떤 수로 나누어 떨어지는지 확인하기 어떤 정수 f의 팩토리얼이 다른 정수 n 으로 나누어 떨어지는지 확인하기. 1 x 2 x .. x f / n 를 손으로 계산할 때, 팩토리얼부터 구하지 않을 것. 분명 분모와 2를 약분하고, 분모와 3을 약분하고 ... 를 반복하는 방식으로 풀 것이다. 이 과정을 코드로 옮겨 봄. from functools import lru_cache @lru_cache(None) def gcd_r(b, s): if b < s: b, s = s, b b, s = s, b%s if s == 0: return b return gcd_r(b, s) def gcd(b, s): if b < s: b, s = s, b while True: b, s = s, b%s if s == 0: break return b def fac_di..
[Python] with 컨텍스트를 이용해서 다른 디렉토리에서 작업하고 오기. ref : https://stackoverflow.com/questions/299446/how-do-i-change-directory-back-to-my-original-working-directory-with-python 컨텍스트 매니저 함수를 다음과 같이 정의하고, from contextlib import contextmanager @contextmanager def cwd(path): oldpwd=os.getcwd() os.chdir(path) try: yield finally: os.chdir(oldpwd) 다음과 같이 쓰면 된다. print('current dir = `%s`'%(os.getcwd()) with cwd('./subdir'): # 여기서 하고 싶은 일들..