기본 콘텐츠로 건너뛰기

라벨이 python인 게시물 표시

python 논리식 and or

논리 연산자  and 나 or 는 보통 아래와 같이 사용한다. >>> a = 1 >>> b = 2 >>> a > 0 and b > 1 True >>> a < 0 or b > 0 True >>> a < 0 or b < 0 False >>> not 0 True >>> not 1 False >>>  그런데, 조건 식이 아닌 값을 사용하면 어찌 될까? >>> a = 1 >>> b = 2 >>> a and b 2 >>> a or b 1 >>> c = 0 >>> d = 4 >>> c and d 0 >>> c or d 4 이건 뭐임? 찾아보니, 판정에 영향을 준 값이 표시가 된다고 하더이다. 어찌되는지 잘 보아두시게나....

python 변수 값 서로 변경하기(swap) 처리

python 변수 값 서로 바꾸기 아주 간단하게 x, y = y, x 형태로 된다.... 헐, 반환값도 이런식으로 되니... 암튼 알아둬야 함... >>> x = 1 >>> y = 2 >>> x,y = y, x >>> x 2 >>> y 1 >>> x,y = y,x >>> x 1 >>> y 2 >>> 다른 객체형태도 동일하게 적용된다. >>> y = [1,2,3] >>> x = [3,2,1] >>> x [3, 2, 1] >>> y [1, 2, 3] >>> x, y = y, x >>> x [1, 2, 3] >>> y [3, 2, 1] >>> 

python 연산자 ++ -- 값은?

python 에서 c에서 만들어 졌다고... ++나 --가 동작할 지도 모른다는 생각으로 실행을 해봤더니... >>> ++3 3 >>> --3 3 >>> +-3 -3 >>> -+3 -3 그냥 단항 연산자로 취급됨.... 결국, 내가 생각했던 것 처럼 c 연산자는 없는 것...

python ** 연산자 우선 순위

4 / 2 * 2 는 얼마? 연산 우선 순위는 (4 / 2) * 2 이고 단순화 하면  2 * 2  답은  4 그럼 4 ** 3 ** 2 는 얼마? 4 ** ( 3 ** 2  ) 이므로 단순화 하면 4 ** 9 = 답은 256 이걸 왜 질문하고 있을까? python에서 우선순위가 오른쪽 부터 있는 연산자가 ** 이다. 나머지는 왼쪽 부터 인데... 그래서 ㅎㅎ 그냥 그렇다고....

python for 문장

소스 코드(python 3.5.0/OSX) l = ['cat', 'dog', 'bird', 'pig', 'spam'] for x, animal in enumerate(l): print(x, animal) else: print("Done") 실행 결과 0 cat 1 dog 2 bird 3 pig 4 spam Done 위 샘플로 알수 있는 것은? 1.python 에서 별도 추가하지 않고, 인덱스 쓸수 있는 방법이 있었다. 헐, enumerate()를 이렇게 쓰는 구만.. 2.for 문이 종료되는 시점에 별도 처리 가능한게 있다. 바로 'else' 'if'도 아닌데, else라니, 'while'문에도 있다는 걸 처음 알게 됨...ㅎㅎ 단, 중간에 'break' 처리가 들어가면 else이하가 실행되지 않으니 주의. 아래는 2개의 테스트 결과를 보면, 앞쪽은 인덱스, 뒤쪽은 range() 결과 인데. 참고. 1번 테스트 >>> for k, n in enumerate(range(10)): print(k, n) 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 2번 테스트 >>> for k, n in enumerate(range(3, 10)): print(k, n) 0 3 1 4 2 5 3 6 4 7 5 8 6 9

[python/IDLE] 인터프린터 창에서 직접 실행하기 execfile(), exec()

python3.5.0 IDLE 을 일단 설치해서 사용하고 있다. PYCharm을 주로 쓰고 있는데, 보통은 별도 파일로 만들어진 것을 실행하는데 idle 내부 인터프린터 창에서 바로 해당 파일을 실행하는 방법이 갑자기 궁금해졌다. python2 버젼에서는 아래처럼 execfile() 함수를 이용해서 인터프린터 창에서 입력하면 되는데, execfile('./cal.py') python3 버젼에서는 execfile() 명령이 사라졌다. 이런, 구글씨에게 물어보니 stackoverflow.com 내용 중에서 하나를 보여준다. exec(open('./cal.py').read()) 왜 이리 바꾼것인지 모르겠지만,  상대경로로 실행하기 때문에 이부분은 절대 경로로 바꾸어서 하든 그냥 한번 실행하면 될듯... 또는 파일 편집창에서 한번 실행해주고, 인터프리터 창에서 입력하니, 실행이 잘 되었음. 왜 편집창에서 모듈 실행후 잘 실행되는지 확인해 보니, import sys sys.path 실행하면, 내가 실행할 경로 들이 저장되어 있는 것을 확인할 수 있음. 아래 명령을 이용 직접 실행할 경로명을 추가해도 된다함. sys.path.append('추가할 디렉토리명') 참고 링크 :  http://stackoverflow.com/questions/436198/what-is-an-alternative-to-execfile-in-python-3-0

[python] 나누기 연산, 'divmod', '//'

python 3 사용하면서 나누기 관련하여 변경된 것이 있구만... 1.divmod(x, y) - x를 y로 정수형 나누기 연산을 수행 했을때, 몫(div)과 나머지(mod)를 '(div, mod)' 형태로 결과 전달 2. '//' 정수 나누기 연산자 3. '/' python2에서는 항목에 따라 정수 연산, 실수 연산를 수행하여 결과를 반환했으나,  python3 로 오면서 실수형 연산 결과를 전달 받은 형에 맞게 반환 먼저  python 2.7.10(osx)  에서 실행 결과 >>> 9 / 4 2 >>> 9 // 4 2 >>> 9.0 / 4.0 2.25 >>> 9.0 // 4.0 2.0 >>> divmod(9, 4) (2, 1) >>> a, b = divmod(9, 4) >>> a 2 >>> b 1 다음  python 3.5.0(osx)  에서 실행 결과 >>> 9/4 2.25 >>> 9//4 2 >>> 9.0 / 4.0 2.25 >>> 9.0 / 4 2.25 >>> 9.0 // 4.0 2.0 >>> divmod(9.0, 4.0) (2.0, 1.0) >>> divmod(9, 4) (2, 1) >>> a, b = divmod(9, 4) >>> a 2 >>> b 1

[python/plyer] - 장치에서 하드웨어 제어를 위한 python 라이브러리

링크:  https://plyer.readthedocs.org/en/latest/ 가속센서, 오디오, 배터리, 카메라, 콤파스, e-mail, gps, gyroscope 등 native app 에서 접근 가능한 기능을 제어 할 수 있게 구성한 라이브러리 kivy 같은 모바일용 어플 사용시에 필수적으로 보임 그래서, github의 kivy를 아래처럼 관련 내용이 있다. https://github.com/kivy/plyer Plyer를 통한 kivy 에서 안드로이드 센서 제어하기 와 같은 포스팅도 존제 https://bytedebugger.wordpress.com/2014/07/06/guest-post-accessing-android-sensors-with-kivy-via-plyer/ https://bytedebugger.wordpress.com/2014/07/17/python-for-android-tutorial-1-using-the-accelerometer/

[링크] [Python] Kivy 한글 예제

링크:  http://www.complexity.co.kr/?p=443 폰트 복사를 하고, 폰트 경로를 지정해 줘야 한글 출력이 됨... 나는 kivy를 아래의 폴더처럼 구성이 되어 있다. \Kivy-1.9.0-py2.7-win32-x64 윈도우 시스템 폴더의 한글 폰트를 가져다 아래의 폴더에 복사하면 된다 \Kivy-1.9.0-py2.7-win32-x64\kivy27\kivy\data\fonts 난 네이버 나눔 고딕이 좋아보여서 나눔 고딕 폰트('NanumGothic.ttf')를 복사 했음 아래는 실행한 결과, 그리고, 아래는 kivy 이용한 한글 Hello World 코드 # coding: utf-8 from   kivy . app   import   App from   kivy . uix . button   import   Button   import   os class   TestApp ( App ): def   build ( self ): fontName = '/' . join ([ os . getenv ( 'SystemRoot' ), '/fonts/NanumGothic.ttf' ]) return   Button ( text = 'Hello World\n안녕?' , font_name = fontName ) TestApp (). run ()

python 2.7 pip 모듈 다운로드시 빌드 오류 나는 경우,

아래의 링크를 보면 너무도 자세히 쓰여 있다. ( 감사~! ) 링크: http://imp17.com/tc/myevan/204 요약하면, 아래 파일의 내용 중간 쯔음에 C:\Python27\Lib\distutils\msvc9compiler.py 다음과 같은 내용이 있는데, # More globals VERSION   =   get_build_version() if   VERSION   <   8.0 :      raise   DistutilsPlatformError ( "VC %0.1f is not supported by this module"   %   VERSION ) 이중 get_build_version() 이 9.0을 반환하는데, 설치된 MSVS 와 버젼이 일치 하지 않으면 생기는 문제 get_build_version() 대신 다른 버젼을 반환하면 된다는 내용 입니다. 좀더 자세히 읽어보시려면 맨윗줄 링크 내용을 참고하세요. 이상입니다. 수고하세요.

mysql-Python 2.7 다운로드

python 2.7에서 mysql 연결하는 모듈 갱신 불가하다. 관련된 자료 검색해 보니, 누가 이미 수고를 해놨군요.. 아래 링크에서 정보를 보시고, 행여나 다운로드 안되면,  아래 링크를 이용하세요. 링크: http://www.codegood.com/archives/129 혹시 몰라 링크도 추가 MySQL-python-1.2.3.win32-py2.7.exe http://www.codegood.com/download/10/ MySQL-python-1.2.3.win-amd64-py2.7.exe http://www.codegood.com/download/11/

python 한글 주석 오류시 확인

python 관련 작업을 하면서, 추천을 많이 해놓은 편집기 pyCharm 을 사용중이다. 한글 주석을 사용하다 보니 또 오류가 난다. 소스 코드 첫줄에 아래 한줄만 쓰면 안나는데, 또 깜빡했다... 코드에 따라 cp-949 를 사용하기도 한다는데, 저는 이것만 사용해봤어요... # -*- coding: utf-8 -*- 결국, 소스 코드 작성시 아래는 기본 형태로 잡고  작성하면  되겠네요. # -*- coding: utf-8 -*- __author__ = 'alexnet' import turtle def main():     # This isn't indented, so we aren't repeating it. if __name__ == "__main__":     main() 오늘도 좋은 하루 되세요.

[python/IDLE] 명령어 리스트 단축키

python shell 키보드 단축키 히스토리 보여주기 파이썬 쉘에서 직접 입력하다보면 간단한 입력 오류가 나는 경우가 많다. 입력 내용이 짧은 경우는 다시 입력 하면 되겠지만, 긴 경우엔 대략 난감한 상태가 된다. 그래서, 이전에 입력 하는 단축키를 알아내려고 검색이 쉽지 않았음. 아래 내용 참고하세요.  키보드 입력 최근 부터 오래된 순으로 표시를 보여줌     alt + n (Windows)     ctrl + n (OSX) 키보드 입력 오래된 것부터 최근 순으로 보여줌.     alt + p  (Wdinwos)     ctrl + p (OSX) 화면 정리를 위해서 화면 정리해주는게 있는지 찾아봤는데, 마땅한게 없음 쉘 재실행이 그나마 나아보임     ctrl + F6 (OSX) - 쉘 재실행