python 5가지 실용적인 기교

4773 단어 python기교
아래에서 내가 선택한 이 몇 가지 기교는 종종 사람들에게 소홀히 여겨지지만, 그것들은 일상 프로그래밍에서 진정으로 우리에게 많은 도움을 줄 수 있다.
1. 사전 유도(Dictionary comprehensions)와 집합 유도(Set comprehensions)
대부분의 파이썬 프로그래머들은 목록 유도 (list comprehensions) 를 알고 사용한 적이 있다.만약listcomprehensions 개념에 익숙하지 않다면, 하나의listcomprehension은 더욱 간단명료하고 간결하게list를 만드는 방법이다.

>>> some_list = [1, 2, 3, 4, 5]
 
>>> another_list = [ x + 1 for x in some_list ]
 
>>> another_list
[2, 3, 4, 5, 6]
python 3.1(심지어 Python 2.7)부터 우리는 같은 문법으로 집합과 사전표를 만들 수 있다.

>>> # Set Comprehensions
>>> some_list = [1, 2, 3, 4, 5, 2, 5, 1, 4, 8]
 
>>> even_set = { x for x in some_list if x % 2 == 0 }
 
>>> even_set
set([8, 2, 4])
 
>>> # Dict Comprehensions
 
>>> d = { x: x % 2 == 0 for x in range(1, 11) }
 
>>> d
{1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False, 10: True}
첫 번째 예에서 우리는 some_로list를 바탕으로 중복되지 않는 원소를 가진 집합을 만들었고 집합에는 짝수만 포함되어 있습니다.사전표의 예에서 우리는 키가 중복되지 않는 1부터 10 사이의 정수를 만들었고value는 부울형으로 키가 짝수인지 아닌지를 표시하는 데 사용되었다.
여기서 또 하나 주의할 만한 것은 집합된 자면량 표현법이다.우리는 간단하게 이런 방법으로 집합을 만들 수 있다.

>>> my_set = {1, 2, 1, 2, 3, 4}
 
>>> my_set
set([1, 2, 3, 4])
내장 함수 set () 를 사용할 필요가 없습니다.
2. 카운터를 사용하여 객체 개수 계산
이것은 듣기에는 명백하지만 자주 잊혀진다.대부분의 프로그래머들에게 하나의 물건을 세는 것은 매우 흔히 볼 수 있는 임무이며, 대다수 상황에서는 결코 도전적인 일이 아니다. 여기에는 몇 가지 방법이 있다. 이런 임무를 더욱 간단하게 완성할 수 있다.
Python의collections 클래스 라이브러리에 내장된dict 클래스의 하위 클래스가 있는데 이런 일을 전문적으로 하는 것입니다.

>>> from collections import Counter
>>> c = Counter( hello world )
 
>>> c
Counter({ l : 3, o : 2, : 1, e : 1, d : 1, h : 1, r : 1, w : 1})
 
>>> c.most_common(2)
[( l , 3), ( o , 2)]
3. JSON 예쁘게 프린트하기
JSON은 매우 좋은 데이터 서열화 형식으로 현재의 각종 API와 웹 서비스에 대량으로 사용되고 있다.python에 내장된 json 처리를 사용하면 JSON 직렬이 일정한 가독성을 가지게 할 수 있지만, 대형 데이터를 만났을 때, 이것은 매우 길고 연속적인 한 줄로 표현되었을 때, 사람의 육안은 보기 어렵다.
JSON 데이터가 더욱 우호적으로 표현될 수 있도록 indent 파라미터를 사용하여 예쁜 JSON을 출력할 수 있습니다.콘솔에서 대화식으로 프로그래밍하거나 로그를 작성할 때 특히 유용합니다.

>>> import json
 
>>> print(json.dumps(data)) # No indention
{"status": "OK", "count": 2, "results": [{"age": 27, "name": "Oz", "lactose_intolerant": true}, {"age": 29, "name": "Joe", "lactose_intolerant": false}]}
 
>>> print(json.dumps(data, indent=2)) # With indention
 
{
 "status": "OK",
 "count": 2,
 "results": [
 
  {
   "age": 27,
   "name": "Oz",
 
   "lactose_intolerant": true
  },
  {
   "age": 29,
 
   "name": "Joe",
   "lactose_intolerant": false
  }
 ]
 
}
마찬가지로 내장된 pprint 모듈을 사용하면 다른 모든 것을 출력할 수 있습니다.
4. 일회적이고 빠른 소형 웹 서비스 만들기
때때로 우리는 두 기계나 서비스 사이에서 간편하고 기초적인 RPC 같은 상호작용을 해야 한다.우리는 간단한 방식으로 B 프로그램을 사용하여 A 프로그램의 한 방법을 호출하기를 희망한다. 때로는 다른 기계에 있다.내부에서만 사용됩니다.
나는 여기서 소개한 방법을 비내부적이고 일회적인 프로그래밍에 사용하는 것을 장려하지 않는다.우리는 이런 일을 하기 위해 XML-RPC라는 프로토콜을 사용할 수 있다.
다음은 SimpleXMLRPCServer 모듈을 사용하여 빠른 파일 읽기 서버를 구축하는 예입니다.

from SimpleXMLRPCServer import SimpleXMLRPCServer
 
def file_reader(file_name):
 
  with open(file_name, r ) as f:
    return f.read()
 
server = SimpleXMLRPCServer(( localhost , 8000))
server.register_introspection_functions()
 
server.register_function(file_reader)
 
server.serve_forever()
클라이언트

import xmlrpclib
proxy = xmlrpclib.ServerProxy( http://localhost:8000/ )
 
proxy.file_reader( /tmp/secret.txt )
우리는 이렇게 하면 원격 파일 읽기 도구를 얻을 수 있고 외부의 의존도 없고 코드 몇 마디만 있다. (물론 어떠한 안전 조치도 없기 때문에 집에서만 이렇게 할 수 있다.)
5. 파이썬의 신기한 소스 커뮤니티
여기서 내가 언급한 몇 가지 물건은 모두 Python 표준 라이브러리에 있는 것이다. 만약 당신이 Python을 설치했다면, 당신은 이미 이렇게 사용할 수 있을 것이다.많은 다른 유형의 임무에 대해 이곳에는 대량의 지역 사회가 관리하는 제3자 라이브러리가 있어 사용할 수 있다.
다음 목록은 내가 생각하기에 유용하고 건장한 개원 라이브러리의 필수 조건이다.
네, 소스 라이브러리는 반드시...
  • 당신의 사용 장면에 적용할 수 있는 명확한 허가 성명을 포함한다.
  • 개발과 유지보수 업무가 활발하다(또는, 당신은 개발과 유지보수에 참여할 수 있다.)
  • 간단하게 pip 설치나 반복 배치를 사용할 수 있습니다..
  • 테스트 세트가 있고 충분한 테스트 커버율이 있습니다..
  • 만약 당신이 좋은 프로그램 라이브러리를 발견하고 당신의 요구에 부합된다면 부끄러워하지 마세요. 대부분의 개원 프로젝트는 코드를 기부하고 도움을 제공하는 것을 환영합니다. 설령 당신이 파이썬의 고수가 아니더라도.
    이상은python 5개의 실용적인 기교에 대한 상세한 내용입니다. 더 많은python 실용적인 기교에 대한 자료는 저희 다른 관련 글에 주목하세요!

    좋은 웹페이지 즐겨찾기