728x90
반응형

프로그래밍 언어/Python 318

함수 내부의 정적 변수에 해당하는 Python

질문 : 함수 내부의 정적 변수에 해당하는 Python은 무엇입니까? 이 C / C ++ 코드와 동등한 관용적 Python은 무엇입니까? void foo() { static int counter = 0; counter++; printf("counter is %d\n", counter); } 특히, 클래스 수준이 아닌 함수 수준에서 정적 멤버를 어떻게 구현합니까? 함수를 클래스에 배치하면 어떤 변화가 있습니까? 답변 약간 반전되었지만 작동합니다. def foo(): foo.counter += 1 print "Counter is %d" % foo.counter foo.counter = 0 카운터 초기화 코드를 하단 대신 상단에 배치하려면 데코레이터를 만들 수 있습니다. def static_vars(**kwa..

파이썬에서 시간 지연을 만드는 방법

질문 : 파이썬에서 시간 지연을 어떻게 만들 수 있습니까? 파이썬 스크립트에 시간 지연을 넣는 방법을 알고 싶습니다. 답변 import time time.sleep(5) # Delays for 5 seconds. You can also use a float value. 다음은 대략 1 분에 한 번 무언가가 실행되는 또 다른 예입니다. import time while True: print("This prints once a minute.") time.sleep(60) # Delay for 1 minute (60 seconds). 출처 : https://stackoverflow.com/questions/510348/how-can-i-make-a-time-delay-in-python

파이썬의 목록에서 고유 한 값 얻기

질문 : 파이썬의 목록에서 고유 한 값 얻기 다음 목록에서 고유 한 값을 얻고 싶습니다. ['nowplaying', 'PBS', 'PBS', 'nowplaying', 'job', 'debate', 'thenandnow'] 필요한 출력은 다음과 같습니다. ['nowplaying', 'PBS', 'job', 'debate', 'thenandnow'] 이 코드는 다음과 같이 작동합니다. output = [] for x in trends: if x not in output: output.append(x) print(output) 내가 사용해야 할 더 나은 솔루션이 있습니까? 답변 먼저 쉼표로 구분하여 목록을 올바르게 선언하십시오. 목록을 집합으로 변환하여 고유 한 값을 얻을 수 있습니다. mylist = ['n..

Python의 matplotlib 설치 문제

질문 : matplotlib Python의 설치 문제 matplotlib 패키지를 설치 한 후 matplotlib.pyplot을 plt 로 가져올 수없는 문제가 있습니다. 어떤 제안이라도 대단히 감사하겠습니다. >>> import matplotlib.pyplot as plt Traceback (most recent call last): File "", line 1, in File "//anaconda/lib/python2.7/site-packages/matplotlib-1.3.1-py2.7-macosx-10.5-x86_64.egg/matplotlib/pyplot.py", line 98, in _backend_mod, new_figure_manager, draw_if_interactive, _show = ..

파이썬 두 딕셔너리를 결합하는 방법

질문 : 두 딕셔너리를 결합하는 파이썬적인 방법이 있습니까 (둘 다에 나타나는 키에 대한 값 추가)? 예를 들어 두 가지 사전이 있습니다. Dict A: {'a': 1, 'b': 2, 'c': 3} Dict B: {'b': 3, 'c': 4, 'd': 5} 결과가 다음과 같이 두 가지 사전을 '결합'하는 파이썬 방식이 필요합니다. {'a': 1, 'b': 5, 'c': 7, 'd': 5} 즉, 키가 두 딕셔너리에 모두 나타나면 값을 추가하고 하나의 딕셔너리에만 나타나면 해당 값을 유지합니다. 답변 collections.Counter 사용하십시오. >>> from collections import Counter >>> A = Counter({'a':1, 'b':2, 'c':3}) >>> B = Counte..

파이썬에서 문자열 내부의 문자 위치를 얻는 방법

질문 : 파이썬에서 캐릭터의 위치를 얻는 방법? 파이썬에서 문자열 내부의 문자 위치를 어떻게 얻을 수 있습니까? 답변 이를위한 두 가지 문자열 메소드, find() 및 index() 있습니다. 둘 사이의 차이점은 검색 문자열을 찾을 수 없을 때 발생하는 것입니다. find() 는 -1 반환하고 index() ValueError 시킵니다. >>> myString = 'Position of a character' >>> myString.find('s') 2 >>> myString.find('x') -1 >>> myString = 'Position of a character' >>> myString.index('s') 2 >>> myString.index('x') Traceback (most recent ca..

Python 3에서“1000000000000000 in range (1000000000000001)”가 빠른 이유

질문 : Python 3에서“1000000000000000 in range (1000000000000001)”가 왜 그렇게 빠른가요? 실제로 Python 3의 객체 유형 인 range() 함수는 생성기와 유사하게 즉시 내용을 생성한다는 것을 이해합니다. 이 경우 1 천조가 범위 내에 있는지 확인하려면 1 천조 개의 값을 생성해야하므로 다음 줄에 과도한 시간이 걸릴 것으로 예상했을 것입니다. 1000000000000000 in range(1000000000000001) 게다가, 내가 얼마나 많은 0을 더 했든간에 계산은 거의 같은 시간 (기본적으로 순간적)이 걸리는 것 같습니다. 나는 또한 이와 같은 것을 시도했지만 계산은 여전히 거의 즉각적입니다. 1000000000000000000000 in range..

Python 3의 상대적 가져 오기

질문 : Python 3의 상대적 가져 오기 같은 디렉토리의 다른 파일에서 함수를 가져오고 싶습니다. from .mymodule import myfunction 과 함께 작동하지만 때로는 다음을 얻습니다. SystemError: Parent module '' not loaded, cannot perform relative import from mymodule import myfunction 과 함께 작동하지만 때로는 다음을 얻습니다. SystemError: Parent module '' not loaded, cannot perform relative import 나는 여기서 논리를 이해하지 못하고 설명을 찾을 수 없습니다. 이것은 완전히 무작위로 보입니다. 누군가가이 모든 것의 논리가 무엇인지 설명해 주..

파이썬 문자열 후행 개행을 제거하는 방법

질문 : 후행 개행을 제거하려면 어떻게해야합니까? 줄 바꿈 인 경우 문자열의 마지막 문자를 제거하는 chomp 함수에 해당하는 Python은 무엇입니까? 답변 rstrip() 메서드를 사용해보십시오 (Python 2 및 Python 3 문서 참조). >>> 'test string\n'.rstrip() 'test string' 파이썬의 rstrip() 메서드 는 기본적으로 모든 종류의 후행 공백을 제거합니다. chomp 것처럼 하나의 개행 문자 만 제거하지 않습니다. >>> 'test string \n \r\n\n\r \n\n'.rstrip() 'test string' 줄 바꿈 만 제거하려면 : >>> 'test string \n \r\n\n\r \n\n'.rstrip('\n') 'test string \..

파이썬에서 문자열을 문자 배열로 분할하는 방법

질문 : 파이썬에서 문자열을 문자 배열로 분할하는 방법은 무엇입니까? 문자열을 문자 배열로 분할하는 방법에 대한 답변을 웹에서 찾아 보려고했지만 간단한 방법을 찾을 수 없는 것 같습니다. str.split(//) 은 Ruby처럼 작동하지 않는 것 같습니다. 반복하지 않고이 작업을 수행하는 간단한 방법이 있습니까? 답변 >>> s = "foobar" >>> list(s) ['f', 'o', 'o', 'b', 'a', 'r'] list 가 필요합니다 출처 : https://stackoverflow.com/questions/4978787/how-to-split-a-string-into-an-array-of-characters-in-python

Python에서 경과 시간을 측정하는 방법

timeit 질문 : Python에서 경과 시간을 측정하는 방법은 무엇입니까? 내가 원하는 것은 내 코드의 어딘가에서 시간을 계산 한 다음 전달 된 시간을 가져와 몇 가지 기능을 실행하는 데 걸린 시간을 측정하는 것입니다. timeit 모듈을 잘못 사용하고 있다고 생각하지만 문서가 혼란 스럽습니다. import timeit start = timeit.timeit() print("hello") end = timeit.timeit() print(end - start) 답변 두 지점 사이의 경과 벽시계 시간을 측정하려면 time.time() 사용할 수 있습니다. import time start = time.time() print("hello") end = time.time() print(end - start)..

딕셔너리를 위한 파이썬 "extend"

질문 : 사전을위한 파이썬 "확장" for 루프를 사용하지 않고 사전을 다른 사전으로 확장하는 가장 좋은 방법은 무엇입니까? 예를 들면 : >>> a = { "a" : 1, "b" : 2 } >>> b = { "c" : 3, "d" : 4 } >>> a {'a': 1, 'b': 2} >>> b {'c': 3, 'd': 4} 결과: { "a" : 1, "b" : 2, "c" : 3, "d" : 4 } 다음과 같은 것 : a.extend(b) # This does not work 답변 a.update(b) 최신 Python 표준 라이브러리 문서 출처 : https://stackoverflow.com/questions/577234/python-extend-for-a-dictionary

여러 버전의 Python에서 pip 잘 사용할 수 있는 방법

질문 : 여러 Python 버전 및 PIP를 다루고 있습니까? 여러 버전의 Python에서 pip 잘 사용할 수있는 방법이 있습니까? 예를 들어, pip 를 사용하여 내 사이트 2.5 설치 또는 내 사이트 2.6 설치에 항목을 명시 적으로 설치하고 싶습니다. 예를 들어 easy_install 에서는 easy_install-2.{5,6} . 그리고, 그렇습니다. 저는 virtualenv에 대해 알고 있습니다. 그리고 아닙니다. 이것은이 특정 문제에 대한 해결책이 아닙니다. 답변 현재 권장 사항 은 python -m pip 를 사용하는 것입니다. 여기서 python 은 사용하려는 Python 버전입니다. 이것은 모든 버전의 Python과 모든 형태의 virtualenv에서 작동하기 때문에 권장 사항입니다. ..

대화 형 동안 Python에서 모듈 다시 가져 오기

질문 : 대화 형 동안 Python에서 모듈 다시 가져 오기 할 수 있다는 건 알지만 방법은 기억 나지 않습니다. 파이썬에서 모듈을 어떻게 다시 가져올 수 있습니까? 시나리오는 다음과 같습니다. 모듈을 대화식으로 가져 와서 수정했지만 오류가 발생합니다. .py 파일의 오류를 수정 한 다음 파이썬을 종료하지 않고 수정 된 모듈을 다시 가져오고 싶습니다. 내가 어떻게 해 ? 답변 이것은 작동합니다 ( Python

requests와 함께 파이썬으로 큰 파일 다운로드

질문 : 요청과 함께 파이썬으로 큰 파일 다운로드 Requests 는 정말 멋진 라이브러리입니다. 대용량 파일 (> 1GB)을 다운로드 할 때 사용하고 싶습니다. 문제는 전체 파일을 메모리에 보관할 수 없다는 것입니다. 나는 그것을 덩어리로 읽어야한다. 그리고 이것은 다음 코드의 문제입니다. import requests def DownloadFile(url) local_filename = url.split('/')[-1] r = requests.get(url) f = open(local_filename, 'wb') for chunk in r.iter_content(chunk_size=512 * 1024): if chunk: # filter out keep-alive new chunks f.write(ch..

Python에서 디렉토리의 zip 아카이브를 만드는 방법

질문 : Python에서 디렉토리의 zip 아카이브를 만드는 방법은 무엇입니까? 파이썬에서 디렉토리 구조의 zip 아카이브를 어떻게 만들 수 있습니까? 답변 다른 사람들이 지적했듯이 zipfile 을 사용해야합니다. 문서는 사용 가능한 기능을 알려 주지만 전체 디렉토리를 압축하는 데 사용할 수있는 방법을 실제로 설명하지는 않습니다. 몇 가지 예제 코드로 설명하는 것이 가장 쉽다고 생각합니다. import os import zipfile def zipdir(path, ziph): # ziph is zipfile handle for root, dirs, files in os.walk(path): for file in files: ziph.write(os.path.join(root, file), os.path..

파이썬에서 긴 줄을 여러 줄로 나누는 방법

질문 : 파이썬에서 긴 줄을 여러 줄로 나눌 수 있습니까? C와 마찬가지로 긴 줄을 여러 개의 짧은 줄로 나눌 수 있습니다. 하지만 파이썬 에서는 이렇게하면 들여 쓰기 오류가 발생합니다. 가능합니까? 답변 PEP 8에서-Python 코드 용 스타일 가이드 : 긴 줄을 감싸는 가장 좋은 방법은 괄호, 대괄호 및 중괄호 안에 Python의 암시 적 줄 연속을 사용하는 것입니다. 필요한 경우 표현식 주위에 추가 괄호 쌍을 추가 할 수 있지만 때로는 백 슬래시를 사용하는 것이 더 좋아 보입니다. 계속되는 줄을 적절하게 들여 쓰기하십시오. 암시 적 줄 연속의 예 : a = some_function( '1' + '2' + '3' - '4') 이항 연산자 주변의 줄 바꿈에 대해 다음과 같이 말합니다. 수십 년 동안 ..

pip install mysql-python 실패 EnvironmentError : mysql_config not found

질문 : pip install mysql-python 실패하며 EnvironmentError : mysql_config not found 이것은 내가 얻는 오류입니다. (mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-python Downloading/unpacking mysql-python Downloading MySQL-python-1.2.3.tar.gz (70Kb): 70Kb downloaded Running setup.py egg_info for package mysql-python sh: mysql_config: not found Traceback (most recent call last): File "", line 14..

Python 모듈 소스의 위치를 찾는 방법

질문 : Python 모듈 소스의 위치를 어떻게 찾습니까? 주어진 Python 모듈의 소스 파일이 설치된 위치를 어떻게 알 수 있습니까? Windows와 Linux에서 방법이 다른가요? datetime 모듈의 소스를 찾으려고 노력하고 있지만 더 일반적인 대답에도 관심이 있습니다. 답변 themodule.__file__ 에서 소스를 찾을 수 있습니다. 그러나 datetime 모듈은 C로 작성되었으므로 datetime.__file__ 은 .so 파일을 가리 키 datetime.__file__ 이 없음) 소스를 볼 수 없습니다. 파이썬 소스 tarball을 다운로드하고 압축을 풀면 모듈의 코드는 Modules 하위 디렉토리에서 찾을 수 있습니다. 예를 들어 python 2.6의 datetime 코드를 찾으려면..

Python interactive 세션을 저장하는 방법

질문 : Python 대화 형 세션을 저장하는 방법은 무엇입니까? 저는 Python의 인터프리터를 자주 사용하여 데이터베이스, 파일 등으로 작업합니다. 기본적으로 반 구조화 된 데이터의 많은 수동 형식화를 사용합니다. 원하는만큼 자주 유용한 비트를 적절하게 저장하고 정리하지 않습니다. 내 입력을 쉘에 저장하는 방법이 있습니까 (db 연결, 변수 할당, 작은 for 루프 및 논리 비트)-대화 형 세션의 일부 기록? script 와 같은 것을 사용하면 너무 많은 stdout 노이즈가 발생합니다. 실제로 모든 개체를 피클 할 필요는 없습니다. 그렇게하는 솔루션이 있다면 괜찮을 것입니다. 이상적으로는 대화 형으로 만든 스크립트로 실행되는 스크립트 만 남게되며 필요하지 않은 비트 만 삭제할 수 있습니다. 이를 수..

파이썬에서 슈퍼 생성자를 호출하는 방법

질문 : 파이썬에서 슈퍼 생성자를 호출하는 방법은 무엇입니까? class A: def __init__(self): print("world") class B(A): def __init__(self): print("hello") B() # output: hello 다른 모든 언어에서 슈퍼 생성자로 작업 한 것은 암시 적으로 호출됩니다. 파이썬에서 어떻게 호출합니까? 나는 super(self) 기대하지만 이것은 작동하지 않습니다. 답변 다른 답변과 함께 슈퍼 클래스 메서드 (생성자 포함)를 호출하는 여러 방법이 있지만 Python-3.x에서는 프로세스가 단순화되었습니다. Python-2.x class A(object): def __init__(self): print "world" class B(A): def ..

유니 코드 문자열을 Python의 문자열로 변환 (추가 기호 포함)

질문 : 유니 코드 문자열을 Python의 문자열로 변환 (추가 기호 포함) 유니 코드 문자열 (£ $ 등과 같은 추가 문자 포함)을 Python 문자열로 어떻게 변환합니까? 답변 unicodedata.normalize 참조하십시오. title = u"Klüft skräms inför på fédéral électoral große" import unicodedata unicodedata.normalize('NFKD', title).encode('ascii', 'ignore') 'Kluft skrams infor pa federal electoral groe' 출처 : https://stackoverflow.com/questions/1207457/convert-a-unicode-string-to-a-st..

파이썬에서 “_” 변수의 목적

질문 : 파이썬에서 단일 밑줄“_”변수의 목적은 무엇입니까? 이 코드에서 for _ 의 의미는 무엇입니까? if tbh.bag: n = 0 for _ in tbh.bag.atom_set(): n += 1 답변 _ 는 Python에서 세 가지 주요 관습적인 용도를 가지고 있습니다. 대화 형 인터프리터 세션에서 마지막으로 실행 된 표현식의 결과를 보관합니다 ( docs 참조). 이 선례는 표준 CPython 통역사에 의해 설정되었으며 다른 통역사도 이에 따랐습니다. i18n에서 번역 조회 ( 예 : gettext 문서 참조)의 경우 다음과 같은 코드에서 raise forms.ValidationError(_("Please enter a correct username")) 범용 "일시적"변수 이름 : 다음과 같..

파이썬 객체에 어떤 메서드가 있는지 찾기

질문 : 파이썬 객체에 어떤 메서드가 있는지 찾기 모든 종류의 Python 객체가 주어지면이 객체가 가진 모든 메서드 목록을 쉽게 얻을 수있는 방법이 있습니까? 또는, 이것이 가능하지 않다면, 메서드가 호출 될 때 단순히 오류가 발생하는지 확인하는 것 외에 특정 메서드가 있는지 확인하는 쉬운 방법이 있습니까? 답변 많은 객체 에 대해이 코드를 사용하여 'object'를 관심있는 객체로 바꿀 수 있습니다. object_methods = [method_name for method_name in dir(object) if callable(getattr(object, method_name))] diveintopython.net 에서 발견했습니다 (현재 보관 됨). 더 자세한 정보가 제공되기를 바랍니다. Attr..

Python : 어떤 OS에서 실행 중인지 확인하는 방법

질문 : Python : 어떤 OS에서 실행 중입니까? Windows 또는 Unix 등에 있는지 확인하려면 무엇을 확인해야합니까? 답변 >>> import os >>> os.name 'posix' >>> import platform >>> platform.system() 'Linux' >>> platform.release() '2.6.22-15-generic' platform.system() 의 출력은 다음과 같습니다. Linux : Linux Mac : Darwin Windows : Windows 참조 : platform — 기본 플랫폼의 식별 데이터에 대한 액세스 출처 : https://stackoverflow.com/questions/1854/python-what-os-am-i-running-on

728x90
반응형