>백엔드 개발 >파이썬 튜토리얼 >Python 함수형 프로그래밍의 기본 소개

Python 함수형 프로그래밍의 기본 소개

PHPz
PHPz앞으로
2023-04-11 22:49:081595검색

Python 함수형 프로그래밍의 기본 소개

함수에 대한 기본지식

사용자 정의 함수의 기본 구문 사양과 호출 방법을 숙지하고, 함수의 다양한 매개변수의 사용 및 호출 규칙을 숙지하세요.

1. Python 함수

  • Function(함수)은 단일 또는 관련 함수를 구현하는 데 사용되는 체계적이고 재사용 가능한 코드 세그먼트입니다.
  • 함수는 애플리케이션 모듈성과 코드 재사용을 향상시킬 수 있습니다.
  • 우리는 이미 print()와 같이 Python에서 제공하는 많은 내장 함수에 노출되어 있습니다.
  • 그러나 사용자 정의 함수라고 하는 자신만의 함수를 만들 수도 있습니다.

2. 함수 사용자 정의를 위한 기본 규칙

원하는 함수로 함수를 정의할 수 있습니다. 다음은 간단한 규칙입니다.

  1. 함수 코드 블록은 def 키워드로 시작하고 그 뒤에 함수 식별자 이름이 옵니다. 괄호( ).
  2. 입력되는 모든 매개변수와 독립변수는 괄호 안에 넣어야 합니다. 매개변수는 괄호 안에 정의할 수 있습니다.
  3. 함수 문의 첫 번째 줄에서는 선택적으로 문서 문자열을 사용하여 함수 설명을 저장할 수 있습니다.
  4. 함수 내용은 콜론으로 시작하고 들여쓰기됩니다.
  5. returm [표현식]은 함수를 종료하고 선택적으로 호출자에게 값을 반환합니다.
  6. 표현식 없이 반환하는 것은 None을 반환하는 것과 같습니다.

3. 함수 구문 사용자 정의

함수 구문 정의:

def 函数标识名称(参数列表):
“函数_文档字符串,对函数进行说明"
函数体
return [表达式]

기본적으로 매개변수 값과 매개변수 이름은 함수 선언에 정의된 순서대로 일치합니다.

4. 함수 호출

함수를 정의하면 함수에 이름만 부여되고 함수에 포함된 매개변수와 코드 블록 구조가 지정됩니다.

이 함수의 기본 구조가 완성되면 다른 함수 호출을 통해 또는 Python 프롬프트에서 직접 실행할 수 있습니다.

다음 예에서는 printme() 함수를 호출합니다.

Python 함수형 프로그래밍의 기본 소개

호출 후의 출력 결과는 다음과 같습니다.

Python 함수형 프로그래밍의 기본 소개

4. 반환 키워드

  • return 문 [표현식]은 함수를 종료하고 선택적으로 메서드를 호출합니다. 표현식을 반환합니다.
  • 매개변수 값이 없는 return 문은 None을 반환합니다.
  • 이전 예제에서는 값을 반환하는 방법을 보여주지 않았습니다. 다음 예제에서는 이를 수행하는 방법을 알려줍니다.

Python 함수형 프로그래밍의 기본 소개

5. 매개변수 전달

파이썬에서는 유형이 객체에 속하며 변수에는 값이 없습니다. 유형:

a=[1,2,3]
a="Runoob"

위의 코드에서 [1,2,3]은 목록 유형이고, "Runoob"은 문자열 유형이며, 변수 a는 유형이 없습니다(-포인터). )은 List 유형의 객체이거나 String 유형의 객체를 가리킬 수 있습니다.

Python 함수의 매개변수 전달

  • 불변 유형: 정수, 문자열, 튜플과 같은 프로그램 프로그래밍의 값 전달. 예를 들어 fun(a)는 a의 값만 전송하고 a 객체 자체에는 영향을 주지 않습니다. 예를 들어, 내부 fun(a)의 값을 수정하면 복사된 다른 객체만 수정되고 객체 자체에는 영향을 주지 않습니다. 우리는 이것을 종종 가치 전달이라고 부릅니다.
  • 변수 유형: 목록, 사전 등 프로그래밍의 참조 전달(주소 전달)과 유사합니다. 예를 들어 fun(la)은 실제로 la를 통과합니다. 수정 후에는 la 외부 fun도 영향을 받습니다.

파이썬의 모든 것은 객체입니다. 엄밀히 말하면, 값으로 전달할지, 참조로 전달할지는 말할 수 없습니다.

6. 매개변수

함수 호출 시 사용할 수 있는 형식적인 매개변수 유형은 다음과 같습니다.

  • 필수 매개변수입니다.
  • 키워드 매개변수.
  • 기본 매개변수.
  • 무한 길이 매개변수.

필수 매개변수

필수 매개변수는 올바른 순서로 함수에 전달되어야 합니다. 호출 시 수량은 선언 시 수량과 동일해야 합니다.

예:

ch06-demo01-args-necessary.py

Greeting() 함수를 호출하려면 매개변수를 전달해야 합니다. 그렇지 않으면 구문 오류가 발생합니다.

Python 함수형 프로그래밍의 기본 소개

키워드 매개변수

키워드 매개변수는 함수 호출과 밀접하게 관련되어 있으며 함수 호출에서는 키워드 전달된 매개변수의 값을 결정하는 매개변수입니다.

키워드 매개변수를 사용하면 함수 호출 시 매개변수 순서가 선언 순서와 일치하지 않을 수 있습니다. Python 인터프리터가 매개변수 값과 매개변수 이름을 일치시킬 수 있기 때문입니다.

예:

ch06-demo02-keyword.py

다음 예에서는 printinfo() 함수를 호출할 때 매개변수 이름을 사용합니다.

Python 함수형 프로그래밍의 기본 소개

缺省参数

调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

示例:

ch06-demo03-args-default.py

打印默认的age,如果age没有被传入:

Python 함수형 프로그래밍의 기본 소개

Python 함수형 프로그래밍의 기본 소개

注意:缺省值必须放在最后一个参数。

不定长参数*args

可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。

适用于当参数个数不确定或根据调用情况其参数个数会动态变化的情况。

基本语法如下:

def函数名称(formal args, *args ):
“函数_文档字符串"
函数体
retum [表达式]

加了星号(* )的变量名会存放所有未命名的变量参数。选择不多传参数也可,可变长参数的类型为元组。

补充: **kw

**两个型号代表接受的是一个可变长度的 字典类型的参数。

因此,改参数必须以k-v值结构出现。

def函数名称(formal _args, **kw ):
“函数_文档字符串”
函数体
retum [表达式

加了星号(** )的变量名会存放所有未命名的变量参数。选择不多传参数也可,可变长参数的类型为字典。

总结: *argv和**kw的区别

两个参数必须为函数定义中参数列表中的排名最后的参数。

*argv代表该参数位置可以放任意个数的数据,最终都会转换成元组数据类型在函数体内处理。

**kw代表该参数位置可以放k=v格式的数据,最终都会转换成字典类型数据安函数体内处理。

위 내용은 Python 함수형 프로그래밍의 기본 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제