파이썬 참고 사항 - 기능

이전 :

파이썬뿐만 아니라 매우 유연하게 정의 함수, 그리고 유용한 기능이 많이 직접 호출 할 수있는 자체 내장.

기본적인 것들을 많이, 그것을 기록합니다 주로 자신의 인상을 깊게 할 수 있도록 흰색이 있기 때문에 여기에 자신의 학습의 내용에 대한 기록이다.

로부터 정보 리아 Xuefeng 교사의 공식 웹 사이트 뿐만 아니라, 교육용 비디오 비프 역.

 

함수를 호출 :

함수를 호출하려면, 당신은 파이썬의 공식 웹 사이트에서 직접 문서를 볼 수 있으며, 이름과 기능 매개 변수를 알아야합니다 http://docs.python.org/3/library/functions.html#abs

 

같은 오류가 발생, 함수가 싫어하지 않는 것입니다 호출 할 때 매개 변수의 수는 전달 :

데이터 형식 변환

파이썬 내장 기능 추가 등 INT () 함수가 다른 데이터 유형 변환 될 수있는 정수로서 공통의 데이터 형식 변환 기능을 포함한다 :

함수 이름이 실제로 함수 객체에 대한 참조입니다, 당신은 "별칭"에서이 기능에 해당하는 변수에 할당 된 함수 이름을 넣을 수 있습니다 :

이 변수는, 포인팅 ABS 같다가 관통하는 함수를 호출 할 수 있도록 복근.

 

정의 기능 :

파이썬에서, 함수는 순차적으로 DEF 문을 정의하는 함수 이름, 괄호, 괄호 대장 매개 변수를 작성 : 다음, return 문에 의해 반환 후퇴, 함수가 반환 값의 기능 블록 본문을 작성합니다.

예를 들어, 우리는 예 my_abs의 절대 값의 함수를 정의 :

 

당신은 또한 쓸 수 있습니다

 

저장 my_abs () 함수는 1.py 파일로 정의되고, 그것은 할 수 있습니다 파일 파이썬 인터프리터의 현재 디렉토리에서 시작 (1) 수입 my_abs () 함수, 메모 파일 이름 my_abs을 가져에서 (제외와 함께. 평 확장) :

 

빈 기능 :

당신은 아무것도하지의 정의가 비어있는 기능입니다하려는 경우, 당신은 패스 문을 사용할 수 있습니다. 실제로 패스 예를 들어, 이제 코드 함수를 작성하는 방법을 생각하지 않은, 플레이스 홀더로 사용할 수 있습니다, 먼저 코드가 실행 될 수 있도록하는 것이, 패스를 넣을 수 있습니다.

패스는 다른 문에서 사용할 수 있습니다, 패스의 부족과 같은 문법 오류와 실행 코드 :

 

매개 변수를 확인합니다 :

당신이 기능하지 않을 경우 매개 변수의 수를 호출 할 때, 파이썬 인터프리터는 자동으로 형식 오류 그것을 확인하고 던질 것이다 :

매개 변수 유형이 정확하지 않은 경우, 파이썬 인터프리터는 우리가 확인할 수 있도록 할 수 없습니다. 다른 my_abs 및 시도 내장 된 기능 복근 :

내장 기능 복근 들어오는 부적절 매개 변수 오류의 매개 변수를 확인하며, 문이 오류로 이어질 것입니다 경우 우리는 어떤 매개 변수 검사를 정의하지 my_abs 때 오류 메시지와 복근은 동일하지 않습니다. 그래서,이 함수의 정의는 완벽하지 않습니다.

하자는 정수 허용하고 인수의 소수점 형식 부동, my_abs의 정의를 변경 매개 변수 유형에 확인을한다. 데이터 유형 검사는 내장 할 수있는 함수 isinstance () 구현을 :

 

여러 값을 반환합니다 :

좌표가 새 좌표 산출 할 수있다, 변위 및 각도, 주어진 가져 오기 문을 도입하는 것은 수학 수학 패키지를 나타내며, 기능과 같은 이후의 코드를 참조 수학 가방 죄, COS하고 있습니다.

그런 다음, 우리는 같은 시간에 반환 값을 얻을 수 있습니다 :

 

반환 값은 튜플입니다! 그러나, 문법, 그것은 튜플 괄호 생략해도 되돌아가, 다수의 변수가 동시에 튜플을받을 수있는 위치에 의해 할당 된 값이되도록에 상당 파이썬의 리턴 여러 값은 실제로 튜플을 반환하지만 쓰기에 편리 . 이것은 단지 환상, 파이썬 함수가 반환 한 값으로 남아 있습니다 :

 

 

함수 매개 변수

파이썬 함수 정의는 매우 간단하지만, 유연성은 매우 크다. 필수 매개 변수의 일반적인 정의뿐만 아니라, 기본 매개 변수는 변수 매개 변수 및 키워드 매개 변수를 사용할 수 있습니다, 그것은뿐만 아니라 복잡한 매개 변수를 처리 할 수있는 기능 인터페이스를 정의하도록, 또한 발신자의 코드를 단순화 할 수있다.

위치 매개 변수

우리는 X 파라미터는 위치 파라미터, 전력 (x)의 함수 계산 함수 X² 쓰기있어.

우리가 전력 함수를 호출 할 때, 그것은 단지 하나 개의 인수 및 X를 통과해야합니다 :

 

X의 n 번째 전력을 계산하는 데 사용하는 방법을 할까? 그래서 우리는 권력을 수정 전원 (x)를 넣어 (X를, n)의 수 :

변수 X 및 n은 지정된 순서 값에 따라 상기 두 개의 위치를 ​​전달하는 기능이 호출되고, X 및 n은, 이들 두 파라미터는 위치 파라미터는 : 전원 (X는, n)의 함수는 두 개의 매개 변수.

 

기본 매개 변수

새로운 전력 (X, N) 함수의 정의는 아무런 문제가 없지만, 우리가 정상 호출 할 수 없습니다 때문에 매개 변수의 부족의 이전 코드의 결과 매개 변수를 추가하기 때문에 이전 호출 코드가 실패합니다 :

이 시간, 편리한 뗏목의 기본 매개 변수를 설정합니다. 파이썬 오류 메시지는 분명하다 : 위치 매개 변수 n의 () 부족 함수 power를 호출합니다. 계산 X²가 쓸 수로 :

우리는, 전원 (5, 2)를 호출하는 것과 전원 (5)를 호출이 방법에서는.

 

기본 매개 변수를 설정하면, 몇 가지 포인트가 있습니다 참고 :

하나는 다른 파이썬 인터프리터 (기본 매개 변수가 필수 매개 변수 앞에 배치 할 수없는 이유에 대해 생각) 불평, 기본 매개 변수 다음에 첫 번째 필수 매개 변수입니다;

함수는 복수의 파라미터를 갖는 경우 둘째, 큰 변화의 앞에 배치 된 매개 변수는 매개 변수의 작은 변화가 되돌려. 매개 변수의 작은 변화는 기본 매개 변수로 사용할 수 있습니다.

 

최대 혜택의 기본 기능은 함수를 호출의 어려움을 줄이기 위해,

예를 들어, 우리는 이제 두 개의 매개 변수의 이름과 성별을 통과해야합니다. 이러한 방법으로, 전화 등록 () 함수는 두 개의 인수가 필요합니다 :

 

파이썬 함수가 정의되면, 파라미터 L의 기본값이 구했다 즉, [], 기본 파라미터 L은 L이 컨텐츠를 변경하면 개체 []에 점마다이 함수가 호출 될 것이 변수이기 때문에, 다음 호출, 기본 매개 변수가 변경되어 더 이상 함수 정의 []가.

참고 : 기본 매개 변수가 같은 객체를 가리켜 야!

 

우리는 같은 목적을 달성하는 데 사용할 수 없음 :

생성되면 불변 오브젝트는 오브젝트 내부의 데이터 인한 데이터의 변화에 ​​따라서 에러를 감소 변경 될 수 없다.

 

변수 매개 변수

수학 자격 부여 예 번호 A, B, C의 세트 주어진 ...... 계산 A2 + B2 + C2 + .......

이 함수를 정의하기 위해, 우리는 입력 매개 변수를 결정해야합니다. 매개 변수의 불확실성 수 있기 때문에 먼저 생각 우리가 전달 목록 또는 튜플 ...... A, B, C를 넣을 수 있습니다 :

때 목록 또는 튜플에 먼저 전화 :( 비교 오류를 수정)

 

우리는 변수 매개 변수 기능 매개 변수 변경 :

우리는 꽤 다른 상징 하는가 의미 별표 앞에 매개 변수를 추가했다. 튜플 번호 인 파라미터 함수 내에서 수신 된 파라미터 함수는 0을 포함한 임의 수의 매개 변수가 전달 될 수있다라고한다.

 

키워드 인수

키워드 인수 사용은 무엇입니까? 이 함수의 기능을 확장 할 수있다. 예를 들어, 사람의 기능에, 우리는 발신자가 추가 매개 변수를 제공 할 용의가있는 경우 수신 이름이 두 매개 변수의 연령은, 그러나, 우리가받을 수 있도록 할 수 있습니다. 당신이 필요한 사용자 이름과 나이뿐만 아니라, 사용자 등록 기능을하고 상상, 다른 옵션을 사용할 수 있습니다 등록 요구 사항을 충족 할 수있을 것입니다 기능을 정의하는 키워드 매개 변수를 사용합니다.

 

키워드 매개 변수는 0 또는 매개 변수 이름 매개 변수의 수를 포함 전달할 수 있도록,이 매개 변수가 자동으로 DICT 기능 내부 키워드로 조립, 다음의 DICT의 변환 키워드 매개 변수를 전달합니다 :

단순화 된 표현 :

이것은 kw로 변경 ** kw, kw는이 딕셔너리 얻을 사본에 DICT의 kw의 관심을 추가하고,하지 얻을 것이다 매개 변수로 함수에 전달되는 모든 키와 값의 키워드 인수의 추가 ** 추가 DICT를 나타냅니다 그것은 여분의 외부 기능에 영향을 미칠 것입니다.

 

명명 된 키워드 인자

발신자 키워드 매개 변수의 경우, 함수 매개 변수는 키워드 제한에 전달 될 수 있습니다. 결국 통과 무엇을, 우리는 내부 기능에 필요 kw를 확인합니다.

당신이 이름을 키워드 인수를 제한하려면, 당신은 키 이름을 사용할 수 있습니다 예를 들어, 단지 도시와 키워드 인수로 작업을 수신 단어 매개 변수를. ** kw 다른 키워드 및 매개 변수라는 키워드 인자는 특별한 구분을 필요로 *, * 후자의 인수는 키워드 인수를 이름으로 간주됩니다. 이 기능은 다음과 같이 정의된다 :

함수가 변수 매개 변수에 정의 된 경우, 나중에 키워드 인자가 더 이상 특별한 구분이 필요 이름없는 다음 * A :

명명 된 키워드 인수는 매개 변수 이름에 전달하고, 서로 다른 매개 변수의 위치해야합니다. 당신은 매개 변수 이름을 통과하지 않으면 통화가 주어집니다 :

때문에 도시와 작업을 호출 할 때 부족 매개 변수의 이름으로, 파이썬은이 네 개의 매개 변수 인터프리터 위치 매개 변수로 취급되지만, 사람 () 함수는 두 개의 위치 매개 변수를 사용할 수 있습니다. 전화 할 때 키워드 인수라는 이름의 도시가, 기본값을 가지고 있기 때문에 명명 된 키워드 인자 도시 매개 변수를 전달하지, 전화를 단순화 디폴트 값을 가질 수 있습니다 :

라는 키워드 인수를 사용하는 경우에는 변수 매개 변수가없는 경우, 특별한 구분 기호로 *를 추가 할 필요가에 특별한주의를 기울이십시오. *가없는 경우, 파이썬 인터프리터는 위치와 이름을 키워드 인자를 인식하지 못합니다.

매개 변수 조합

파이썬에서 함수를 정의하는 필수 매개 변수, 기본 매개 변수 매개 변수, 키워드 및 명명 된 키워드 매개 변수가 될 수 있으며,이 5 개의 매개 변수를 조합하여 사용할 수있다. 단, 매개 변수의 순서를 정의해야합니다 : 필수 매개 변수, 기본 매개 변수 매개 변수라는 키워드 인자 및 키워드 인수.

참고 : 당신은 5 개 개의 매개 변수까지의 조합,하지만 너무 많은 조합, 또는 가난한 명료 한 기능 인터페이스를 사용하지 않는 수 있지만.

이러한 함수 호출, 파이썬 위치가 자동적으로 전달되는 매개 변수 및 상응하는 매개 변수 이름 파라미터에 따른 여러 매개 변수를 포함하는 기능의 정의, 등 :

튜플 및 DICT함으로써, 당신은 또한 위의 함수를 호출 할 수 있습니다 :

 

재귀 기능 :

함수 내부에서 다른 함수를 호출 할 수 있습니다. 함수가 자체 내에서 자신을 호출하면이 함수는 재귀 함수입니다.

! 예를 들어, 우리의 계승을 계산 N = 1 × 2 × 3 × ... 함수 점 (N)을 나타내고, XN와, 그것을 알 수있다 :

사실 (N) = N! = 1 × 2 × 3 × ... × (N-1) XN = (N-1)! = XN 사실 (N-1) XN. 따라서, 실제로는 (N) NX 사실 (N-1)로 표현 될 수 있고, N = 1, 단지 특별한 취급을 필요로한다.

그래서, 사실은 (n)의 재귀 방식으로 작성한다 :

장점은 간단한 재귀 함수, 명확한 논리를 정의하는 것입니다. 이론적으로, 모든 재귀 함수는 순환 방식으로 작성 될 수 있지만, 재귀 루프 논리 좋은 분명하다하지.

 

재귀 함수의 요구는 스택 오버 플로우를하지 않도록주의해야합니다. 스택의 크기는 제한이 아니기 때문에, 그래서 재귀 호출의 수를 너무 많이 스택 오버플로 이어질 것입니다 :

 

재귀 호출 스택 오버 플로우에 의해 해결된다 꼬리 재귀 최적화, 꼬리 재귀 함수가 반환이, 자신을 자신을 호출 한 경우, return 문은 표현식을 포함 할 수 없습니다 것을 의미한다. 이러한 방법으로, 컴파일러 또는 최적화 꼬리 재귀 자체에 대한 재귀 호출을 할 수있는 통역, 여러 번, 단지 스택 프레임을 점유하는 방법을 상관없이, 스택 오버 플로우 상황이 발생하지 않습니다.

 

꼬리 재귀 방식을 변경하기 위해서는 조금 더 코드는 주로 각 단계의 제품이 재귀 함수에 전달해야입니다 필요합니다

반환 fact_iter (NUM - 1, NUM * 제품) 만 반환 재귀 함수 자체 , NUM - 함수 호출은 함수 호출에 영향을주지 않습니다 전에 1 NUM *이 제품은 평가 될 것입니다.

추천

출처www.cnblogs.com/qi-yuan/p/12629755.html