python 조건문 예제

파이썬의 기본 제공 함수 인 map() 및 필터()의 두 가지 기능은 다소 사용되지 않습니다. 목록 이해 기능을 복제하지만 이터레이터 대신 실제 목록을 반환합니다. 이 문서에서는 기능적 스타일로 프로그램을 구현하는 데 적합한 Python의 기능을 살펴보겠습니다. 함수형 프로그래밍의 개념을 소개한 후, 이터레이터 및 생성기와 같은 언어 기능과 이터툴 및 functools와 같은 관련 라이브러리 모듈을 살펴보겠습니다. 일부 언어는 순도에 대해 매우 엄격하며 a=3 또는 c = a + b와 같은 할당 문이 없지만 모든 부작용을 피하기는 어렵습니다. 예를 들어 화면에 인쇄하거나 디스크 파일에 쓰는 것은 부작용입니다. 예를 들어 파이썬에서 인쇄 문 또는 time.sleep(1)은 모두 유용한 값을 반환하지 않습니다. 그들은 단지 화면에 일부 텍스트를 보내거나 잠시 동안 실행을 일시 중지의 부작용에 대한 호출. 라이브 오브젝트를 프로브하여 getmembers()를 사용하여 해당 구성 요소를 확인할 수 있습니다. getmembers()에 대한 인수는 검색하는 개체(모듈, 클래스 또는 인스턴스)이며 반환된 개체를 필터링하는 데 사용되는 선택적 조건자 함수입니다. 반환 값은 멤버 의 이름과 멤버의 유형이라는 2개의 값이 있는 tuples 목록입니다. 검사 모듈에는 ismodule(), isclass() 등과 같은 이름이 있는 여러 가지 술어 함수가 포함되어 있습니다.

사용자 고유의 술어 함수도 제공할 수 있습니다. 다음 예제에서 펑터는 SMARTS 문자열로 초기화됩니다. 이 펑터는 원자가 건설에 지정된 하부 구조 패턴과 일치하는 경우에만 true를 반환합니다. 일반적으로 파이썬으로 작성된 코드의 컨텍스트에서 lambda 식보다 정규 함수를 선호합니다. 그럼에도 불구 하 고, 람다 구문에서 혜택을 받는 경우가 있습니다., 다음 섹션에서 볼 수 있듯이. 파이썬 람다는 일반 함수와 유사하게 테스트 할 수 있습니다. 단위 테스트와 교리를 모두 사용할 수 있습니다. 파이썬 2.5의 functools 모듈에는 몇 가지 고차 함수가 포함되어 있습니다. 상위 순서함수는 하나 이상의 함수를 입력으로 가져와 새 함수를 반환합니다.