728x90
반응형

프로그래밍 언어/Python 318

알아두면 유용한 파이썬의 숨겨진 기능들

질문 : Python의 숨겨진 기능 덜 알려졌지만 Python 프로그래밍 언어의 유용한 기능은 무엇입니까? Python 코어에 대한 답변을 제한하십시오. 답변 당 하나의 기능. 문서에 대한 링크뿐만 아니라 기능의 예와 간단한 설명을 제공하십시오. 제목을 첫 번째 줄로 사용하여 지형지 물에 레이블을 지정합니다. 답변에 대한 빠른 링크: Argument Unpacking Braces Chaining Comparison Operators Decorators Default Argument Gotchas / Dangers of Mutable Default arguments Descriptors Dictionary default .get value Docstring Tests Ellipsis Slicing Synt..

디버그 정보와 함께 Python 오류를 기록하는 방법

질문 : 디버그 정보와 함께 Python 오류를 어떻게 기록합니까? logging.error 로 Python 예외 메시지를 로그 파일에 인쇄하고 있습니다. import logging try: 1/0 except ZeroDivisionError as e: logging.error(e) # ERROR:root:division by zero 예외 문자열뿐만 아니라 예외 및이를 생성 한 코드에 대한 자세한 정보를 인쇄 할 수 있습니까? 줄 번호 또는 스택 추적과 같은 것들이 좋을 것입니다. 답변 logger.exception 은 오류 메시지와 함께 스택 추적을 출력합니다. 예를 들면 : import logging try: 1/0 except ZeroDivisionError: logging.exception("m..

Python에서 여러 줄 주석을 만드는 방법

질문 : Python에서 여러 줄 주석을 만드는 방법이 있습니까? 최근에 Python 공부를 시작했지만 여러 줄 주석을 구현하는 방법을 찾을 수 없습니다. 대부분의 언어에는 다음과 같은 블록 주석 기호가 있습니다. /* */ 파이썬에서 이것을 시도했지만 오류가 발생하므로 이것이 올바른 방법이 아닐 수 있습니다. 파이썬에는 실제로 여러 줄 주석 기능이 있습니까? 답변 삼중 따옴표로 묶인 문자열을 사용할 수 있습니다. 독 스트링 (클래스 / 함수 / 모듈의 첫 번째 항목)이 아니면 무시됩니다. ''' This is a multiline comment. ''' (IndentationError를 피하기 위해 ''' IndentationError .) Guido van Rossum (Python 제작자) 은 이것..

Python 요청 모듈 사용을 시도 / 제외하는 올바른 방법

질문 : Python 요청 모듈 사용을 시도 / 제외하는 올바른 방법은 무엇입니까? try: r = requests.get(url, params={'s': thing}) except requests.ConnectionError, e: print e #should I also sys.exit(1) after this? 이 올바른지? 이것을 구조화하는 더 좋은 방법이 있습니까? 이것이 내 모든 기지를 다룰까요? 답변 요청 예외 문서를 살펴보십시오. 요컨대 : 네트워크 문제 (예 : DNS 실패, 연결 거부 등)가 발생하는 경우 요청은 ConnectionError 예외를 발생시킵니다. 드물게 잘못된 HTTP 응답이 발생하는 경우 요청은 HTTPError 예외를 발생시킵니다. 요청 시간이 초과되면 Timeout..

Python이 해석되는 경우 .pyc 파일의 쓰임새

질문 : Python이 해석되는 경우 .pyc 파일은 무엇입니까? 나는 파이썬이 해석 언어라는 것을 이해하기 위해 주어졌습니다. 그러나 Python 소스 코드를 보면 Windows가 "컴파일 된 Python 파일"로 식별하는 .pyc 이들은 어디로 들어 갑니까? 답변 여기에는 Python 인터프리터가 소스를 컴파일하는 바이트 코드가 포함됩니다. 이 코드는 Python의 가상 머신에서 실행됩니다. Python의 문서는 다음과 같은 정의를 설명합니다. 파이썬은 컴파일 된 언어와는 달리 해석 된 언어이지만 바이트 코드 컴파일러의 존재로 인해 구별이 모호 할 수 있습니다. 이는 실행 파일을 명시 적으로 생성하지 않고도 소스 파일을 직접 실행할 수 있음을 의미합니다. 출처 : https://stackoverflo..

파이썬에서 문자열을 bool 타입으로 변환

질문 : 파이썬에서 문자열을 부울로 변환? 누구든지 파이썬에서 문자열을 부울로 변환하는 방법을 알고 있습니까? 이 링크를 찾았습니다. 하지만 적절한 방법이 아닌 것 같습니다. 즉, 내장 기능 사용 등 내가 이것을 묻는 이유는 여기에서 int("string") bool("string") 시도 할 때 True 반환합니다. >>> bool("False") True 답변 사실, 당신은 참을 나타내는 것으로 받아 들일 것으로 기대하는 문자열과 문자열을 비교하기 만하면됩니다. s == 'True' 또는 전체 값을 확인하려면 : s.lower() in ['true', '1', 't', 'y', 'yes', 'yeah', 'yup', 'certainly', 'uh-huh'] 다음을 사용할 때주의하십시오. >>> boo..

Python 모듈과 패키지의 차이점

질문 : Python 모듈과 Python 패키지의 차이점은 무엇입니까? Python 모듈과 Python 패키지의 차이점은 무엇입니까? 참조 : "패키지"와 "모듈"의 차이점은 무엇입니까 (다른 언어의 경우) 답변 모듈은 하나의 가져 오기에서 가져 와서 사용되는 단일 파일 (또는 파일)입니다. 예 : import my_module 패키지는 패키지 계층 구조를 제공하는 디렉토리의 모듈 모음입니다. from my_package.timing.danger.internets import function_of_love 모듈 문서 패키지 소개 출처 : https://stackoverflow.com/questions/7948494/whats-the-difference-between-a-python-module-and-a..

Python의 파일 이름에서 확장자를 추출하는 방법

질문 : Python의 파일 이름에서 확장자 추출 파일 이름에서 확장자를 추출하는 기능이 있습니까? 답변 예. os.path.splitext 사용 ( Python 2.X 문서 또는 Python 3.X 문서 참조 ) : >>> import os >>> filename, file_extension = os.path.splitext('/path/to/somefile.ext') >>> filename '/path/to/somefile' >>> file_extension '.ext' 대부분의 수동 문자열 분할 시도와 달리 os.path.splitext /a/bc/d .c/d 대신 확장자가없는 것으로 올바르게 처리하고 .bashrc 를 확장자 대신 확장자가없는 것으로 처리합니다 .bashrc : >>> os.pat..

Python 변수가 정의되어 있는지 확인하는 방법

질문 : 변수가 Python에 정의되어 있는지 확인 런타임시 코드의 특정 위치에 변수가 설정되었는지 어떻게 알 수 있습니까? (1) 변수가 조건부로 설정 될 수 있고 (2) 변수가 조건부로 삭제 될 수 있기 때문에 이것이 항상 분명하지는 않습니다. Perl의 defined() 또는 PHP의 isset() 또는 정의 된 것을 찾고 defined? 루비에서. if condition: a = 42 # is "a" defined here? if other_condition: del a # is "a" defined here? 답변 try: thevariable except NameError: print("well, it WASN'T defined after all!") else: print("sure, it w..

Python에서 시간대 인식 datetime 객체를 만드는 방법

질문 : Python에서 시간대 인식 datetime 객체를 만드는 방법은 무엇입니까? 내가해야 할 일 시간대를 인식하지 못하는 datetime 객체가 있는데, 다른 시간대를 인식하는 datetime 객체와 비교할 수 있도록 시간대를 추가해야합니다. 이 레거시 사례를 인식하지 못하는 시간대로 전체 애플리케이션을 변환하고 싶지 않습니다. 내가 시도한 것 먼저 문제를 설명하려면 : Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) [GCC 4.2.1 (Apple Inc. build 5646)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import datetime..

파이썬 변수의 유형을 결정하는 방법

질문 : 파이썬 변수의 유형을 결정하는 방법은 무엇입니까? 부호없는 32 비트, 부호있는 16 비트 등의 변수 유형을 어떻게 볼 수 있습니까? 어떻게 봅니까? 답변 type() 내장 함수를 사용하십시오. >>> i = 123 >>> type(i) >>> type(i) is int True >>> i = 123.456 >>> type(i) >>> type(i) is float True 변수가 주어진 유형인지 확인하려면 isinstance 사용하십시오. >>> i = 123 >>> isinstance(i, int) True >>> isinstance(i, (float, str, set, dict)) False Python에는 C / C ++와 동일한 유형이 없으므로 귀하의 질문으로 보입니다. 출처 : htt..

중첩 된 Python dict를 객체로 변환 하는 방법

질문 : 중첩 된 Python dict를 객체로 변환 하시겠습니까? 일부 중첩 된 딕셔너리 및 목록 (예 : 자바 스크립트 스타일 개체 구문)이있는 딕셔너리에 대한 속성 액세스를 사용하여 데이터를 얻는 우아한 방법을 찾고 있습니다. 예를 들면 : >>> d = {'a': 1, 'b': {'c': 2}, 'd': ["hi", {'foo': "bar"}]} 다음과 같은 방법으로 액세스 할 수 있어야합니다. >>> x = dict2obj(d) >>> x.a 1 >>> x.b.c 2 >>> x.d[1].foo bar 재귀 없이는 불가능하다고 생각하지만 dicts에 대한 객체 스타일을 얻는 좋은 방법은 무엇입니까? 답변 업데이트 : Python 2.6 이상에서는 namedtuple 데이터 구조가 필요에 맞는지 고..

Python : 예외 발생시 무시하고 계속 진행하는 방법

질문 : Python : 예외를 무시하고 계속하는 방법? 내 코드에 try ... except 블록이 있고 예외가 throw 될 때. 이 경우 모든 것이 여전히 잘 실행될 수 있기 때문에 코드를 계속 진행하고 싶습니다. 문제는 except : 블록을 비워 두거나 #do nothing으로두면 구문 오류가 발생한다는 것입니다. 루프가 아니기 때문에 continue를 사용할 수 없습니다. 계속 진행하도록 코드를 알려주는 키워드가 있습니까? 답변 except Exception: pass pass 문에 대한 Python 문서 출처 : https://stackoverflow.com/questions/574730/python-how-to-ignore-an-exception-and-proceed

파이썬에서 ** kwargs를 사용하는 적절한 방법

질문 : 파이썬에서 ** kwargs를 사용하는 적절한 방법 기본값과 관련하여 Python에서 **kwargs 를 사용하는 적절한 방법은 무엇입니까? kwargs 는 사전을 반환하지만 기본값을 설정하는 가장 좋은 방법은 무엇입니까? 사전으로 액세스해야합니까? get 함수를 사용 하시겠습니까? class ExampleClass: def __init__(self, **kwargs): self.val = kwargs['val'] self.val2 = kwargs.get('val2') 간단한 질문이지만 좋은 리소스를 찾을 수 없습니다. 사람들은 내가 본 코드에서 다른 방식으로 수행하며 무엇을 사용해야하는지 알기 어렵습니다. 답변 사전에없는 키의 경우 기본값을 get() self.val2 = kwargs.get(..

Python으로 새 딕셔너리 만들기

질문 : Python으로 새 사전 만들기 파이썬으로 사전을 만들고 싶습니다. 그러나 내가 보는 모든 예제는 목록 등에서 사전을 인스턴스화합니다. .. 파이썬에서 새 빈 사전을 어떻게 생성합니까? 답변 매개 변수없이 dict 호출 new_dict = dict() 또는 단순히 쓰십시오 new_dict = {} 출처 : https://stackoverflow.com/questions/8424942/creating-a-new-dictionary-in-python

파이썬 모듈의 버전을 확인하는 방법

질문 : 파이썬 모듈의 버전을 확인하는 방법은 무엇입니까? : 난 그냥 파이썬 모듈 설치 construct 와 statlib 와 setuptools 이 같은를 : # Install setuptools to be able to download the following sudo apt-get install python-setuptools # Install statlib for lightweight statistical tools sudo easy_install statlib # Install construct for packing/unpacking binary data sudo easy_install construct 나는 그들의 버전을 (프로그래밍 방식으로) 확인할 수 있기를 원합니다. 명령 줄에서 실행할..

파이썬 유니 코드 문자열에서 악센트를 제거 (정규화)하는 가장 좋은 방법

질문 : 파이썬 유니 코드 문자열에서 악센트를 제거 (정규화)하는 가장 좋은 방법은 무엇입니까? 파이썬에 유니 코드 문자열이 있는데 모든 악센트 (분음 부호)를 제거하고 싶습니다. 웹에서이 작업을 수행하는 우아한 방법을 찾았습니다 (Java에서). pyICU와 같은 라이브러리를 설치해야합니까, 아니면 Python 표준 라이브러리만으로 가능합니까? 그리고 파이썬 3은 어떻습니까? 중요 참고 사항 : 악센트 부호가있는 문자에서 악센트 부호가없는 문자로의 명시 적 매핑을 사용하는 코드를 피하고 싶습니다. 답변 Unidecode 가 이에 대한 정답입니다. 모든 유니 코드 문자열을 ASCII 텍스트에서 가능한 가장 가까운 표현으로 음역합니다. 예: accented_string = u'Málaga' # accent..

파이썬에서 큰 파일의 줄 수를 간단하게 얻는 방법

질문 : 파이썬에서 큰 파일의 줄 수를 저렴하게 얻는 방법은 무엇입니까? 파이썬으로 큰 파일 (수십만 줄)의 줄 수를 얻어야합니다. 기억력과 시간면에서 가장 효율적인 방법은 무엇입니까? 지금 내가하는 일 : def file_len(fname): with open(fname) as f: for i, l in enumerate(f): pass return i + 1 더 잘할 수 있습니까? 답변 당신은 그것보다 더 나아질 수 없습니다. 결국 모든 솔루션은 전체 파일을 읽고 얼마나 많은지 \n 다음 그 결과를 반환해야합니다. 전체 파일을 읽지 않고 더 나은 방법이 있습니까? 확실하지 않습니다 ... 최상의 솔루션은 항상 I / O 바운드입니다. 최선의 방법은 불필요한 메모리를 사용하지 않는지 확인하는 것입니다...

파이썬에서 '//' 연산자

질문 : 파이썬에서 '//'가있는 이유는 무엇입니까? 나는 누군가의 코드에서 이것을 보았다. y = img_index // num_images 여기서 img_index 는 실행중인 인덱스이고 num_images 는 3입니다. 내가 IPython // 를 엉망으로 만들면 나눗셈 기호 (즉, 하나의 슬래시)처럼 작동하는 것 같습니다. 이중 슬래시를 사용하는 이유가 있는지 궁금합니다. 답변 파이썬 3에서는 / 연산자가 부동 소수점 분할 // 연산자를 추가하여 정수 분할을 수행합니다 (즉, 나머지가없는 몫); 파이썬 2에서 / 연산자는 피연산자 중 하나가 이미 부동 소수점 숫자가 아니라면 단순히 정수 나눗셈이었습니다. Python 2.X에서 : >>> 10/3 3 >>> # To get a floating po..

파이썬에서 'Enum'을 표현하는 방법

질문 : 파이썬에서 '열거 형'을 어떻게 표현할 수 있습니까? 저는 주로 C # 개발자이지만 현재 Python으로 프로젝트를 진행하고 있습니다. 파이썬에서 Enum에 해당하는 것을 어떻게 나타낼 수 있습니까? 답변 PEP 435에 설명 된대로 열거 형 이 Python 3.4에 추가되었습니다. 또한 pypi 에서 3.3, 3.2, 3.1, 2.7, 2.6, 2.5 및 2.4로 백 포트되었습니다. 고급 열거 기술이 시도를 위해 aenum 라이브러리 (2.7, 3.3 이상, 동일 저자 enum34 . 코드는 당신이 필요합니다 py2 및 py3, 예를 들어 사이에 완벽하게 호환되지 않습니다 __order__ 파이썬 2 ). enum34 를 사용하려면 $ pip install enum34 aenum 을 사용 $ ..

Python으로 Pandas에서 CSV 파일을 읽을 때 UnicodeDecodeError

질문 : Python으로 Pandas에서 CSV 파일을 읽을 때 UnicodeDecodeError 30,000 개의 유사한 파일을 처리하는 프로그램을 실행하고 있습니다. 임의의 숫자가 중지되고이 오류가 발생합니다. File "C:\Importer\src\dfman\importer.py", line 26, in import_chr data = pd.read_csv(filepath, names=fields) File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 400, in parser_f return _read(filepath_or_buffer, kwds) File "C:\Python33\lib\site-packages\pandas\io\pars..

파이썬에서 딕셔너리 키를 리스트로 반환하는 방법

질문 : 파이썬에서 사전 키를 목록으로 반환하는 방법은 무엇입니까? Python 2.7 에서는 사전 키 , 값 또는 항목 을 목록으로 가져올 수 있습니다. >>> newdict = {1:0, 2:0, 3:0} >>> newdict.keys() [1, 2, 3] 이제 Python> = 3.3 에서 다음과 같은 결과를 얻습니다. >>> newdict.keys() dict_keys([1, 2, 3]) 따라서 목록을 얻으려면 이렇게해야합니다. newlist = list() for i in newdict.keys(): newlist.append(i) Python 3 에서 목록을 반환하는 더 좋은 방법이 있는지 궁금합니다. 답변 list(newdict.keys()) 시도하십시오. 그러면 dict_keys 객체가 목..

Python 및 pip, 사용 가능한 모든 버전의 패키지 나열하는 방법

질문 : Python 및 pip, 사용 가능한 모든 버전의 패키지 나열? pip 로 설치할 수있는 Python 패키지의 이름이 주어지면 pip가 설치할 수있는 모든 가능한 버전 목록을 찾을 수있는 방법이 있습니까? 지금은 시행 착오입니다. 타사 라이브러리 용 버전을 설치하려고하는데 최신 버전이 너무 새롭고 이전 버전과 호환되지 않는 변경 사항이 있습니다. 그래서 어떻게 든 pip가 알고있는 모든 버전의 목록을 갖고 싶습니다. 그래서 그것들을 테스트 할 수 있습니다. 답변 (업데이트 : 2020 년 3 월 현재 많은 사람들이 pip install yolk3k 를 통해 설치된 yolk가 최신 버전 만 반환 한다고보고했습니다. Chris의 답변 은 가장 많은 찬성 투표를하고 저에게 효과적이었습니다) paste..

프로젝트 오일러와의 속도 비교 : C vs Python vs Erlang vs Haskell

질문 : 프로젝트 오일러와의 속도 비교 : C vs Python vs Erlang vs Haskell 저는 Project Euler 에서 문제 # 12 를 프로그래밍 연습으로 가져와 C, Python, Erlang 및 Haskell의 내 (최적은 아님) 구현을 비교했습니다. 더 높은 실행 시간을 얻기 위해 원래 문제에서 설명한 것처럼 500 대신 1000 이상의 제수가있는 첫 번째 삼각형 숫자를 검색합니다. 결과는 다음과 같습니다. C: lorenzo@enzo:~/erlang$ gcc -lm -o euler12.bin euler12.c lorenzo@enzo:~/erlang$ time ./euler12.bin 842161320 real 0m11.074s user 0m11.070s sys 0m0.000s ..

파이썬 return vs return None vs no return at all

질문 : 반환, 반환 없음 및 반환 없음? 세 가지 기능을 고려하십시오. def my_func1(): print "Hello World" return None def my_func2(): print "Hello World" return def my_func3(): print "Hello World" 그들은 모두 None을 반환하는 것처럼 보입니다. 이 함수의 반환 값이 작동하는 방식에 차이가 있습니까? 하나를 선호하는 이유가 있습니까? 답변 실제 행동에는 차이가 없습니다. 그들은 모두 None 반환하고 그게 다입니다. 그러나이 모든 것을위한 시간과 장소가 있습니다. 다음 지침은 기본적으로 다른 방법을 사용하는 방법 (또는 최소한 내가 배운 방법을 사용해야 함)이지만 절대적인 규칙은 아니므로 필요하다고 생..

728x90
반응형