8. 함수
-
함수는 특정 작업을 완료하는 데 사용되는 명명된 코드 블록입니다. def 함수 정의, 함수 이름을 나타냅니다. 함수를 정의할 때 매개변수의 이름과 위치를 결정하면 함수의 인터페이스 정의가 완성됩니다. 함수를 호출하는 사람은 올바른 매개변수를 전달하는 방법과 함수가 반환할 값만 알면 충분합니다. 함수 내부의 복잡한 논리는 캡슐화되어 있으므로 호출자는 이해할 필요가 없습니다.
함수로 정의된 특정 작업을 수행하려면 함수를 호출하세요. 프로그램에서 동일한 작업을 여러 번 수행하는 경우 작업을 반복적으로 완료하기 위해 코드를 작성할 필요가 없으며 작업을 수행하는 함수를 호출하고 Python이 코드를 실행하도록 하면 됩니다. - 고차 함수는 영어로 Higher-order function이라고 합니다
- 8.1 실제 매개변수와 형식 매개변수
1. 함수를 호출할 때 Python은 함수 호출의 각 실제 매개변수를 함수 정의의 형식 매개변수에 연결해야 합니다. 단순 연관은 실제 매개변수의 순서를 기반으로 합니다. 이 연관성을 위치 인수라고 합니다.
2. 함수에서는 필요에 따라 위치 인수를 얼마든지 사용할 수 있으며, Python은 함수 호출의 실제 매개변수를 함수 정의의 해당 형식 매개변수에 순차적으로 연결합니다. 3. 위치 인수를 사용하여 함수를 호출할 때 인수 순서가 올바르지 않으면 출력이 올바르지 않습니다. 8.2.2 키워드 인수 및 키워드 인수 키워드 인수는 함수에 전달되는 (이름-값) 쌍입니다. 인수에서 이름과 값을 직접 연관시키므로 인수를 함수에 전달할 때 혼동이 없습니다. 키워드 인수를 사용하면 함수 호출에서 인수 순서에 대해 걱정할 필요가 없으며 함수 호출에서 각 값의 목적을 명확하게 나타냅니다. describe_pet(
|
>> > person('Bob', 35, city='Beijing')
>>> , 성별='M', job='엔지니어')이름: 아담 나이: 45 기타: {'성별': 'M', 'job': '엔지니어'} 8.2.3 기본값 value |
기본 매개변수는 불변 객체를 가리켜야 합니다!
def add_end(L=None):
L = [] L.append('END') return L
8.2. 4 변수 매개변수 |
숫자 n의 경우: sum = sum + n * n return sum
|
> 또는 튜플의 요소가 가변 매개변수가 되어 전달됩니다:
>>> , 3] >>> 계산(*숫자) | 14
*nums는 nums 목록의 모든 요소를 변수 매개변수로 전달하는 것을 의미합니다.
8.2.5 명명된 키워드 매개변수
키워드 매개변수의 경우 함수 호출자는 무제한의 키워드 매개변수를 전달할 수 있습니다. 전달된 내용은 함수 내부에서 kw 검사를 통과해야 합니다.
키워드 매개변수의 이름을 제한하려면 명명된 키워드 매개변수를 사용할 수 있습니다. 예를 들어 도시와 직업만 키워드 매개변수로 받습니다. 이렇게 정의된 함수는 다음과 같습니다.
def person(이름, 나이, *, 도시, 직업): print(이름, 나이, 도시, 직업) |
및 키워드 매개변수 **kw와 달리 명명된 키워드 매개변수에는 특수 구분 기호 *가 필요하며 * 뒤에 오는 매개변수는 명명된 키워드 매개변수로 간주됩니다.
함수 정의에 변수 매개변수가 이미 있는 경우 뒤에 오는 명명된 키워드 매개변수에는 특별한 구분 기호가 필요하지 않습니다. *:
def person(name, age, *args, city, job): print(name, age, args, city, job) |
명명된 키워드 매개변수는 매개변수 이름에 전달되어야 하며 이는 위치 매개변수와 다릅니다. 매개변수 이름이 전달되지 않으면 호출에서 오류를 보고합니다.
>>> person('Jack', 24, 'Beijing', 'Engineer') Traceback(가장 최근 호출) last): 파일 " TypeError: person()은 2개의 위치 인수를 사용하지만 4개가 주어졌습니다 |
매개변수 이름 부족으로 인해 city 및 job 호출 시 Python 설명 구현자는 이 4개의 매개변수를 위치 매개변수로 처리하지만 person() 함수는 2개의 위치 매개변수만 허용합니다.
이름이 지정된 키워드 매개변수는 기본값(기본값)을 가질 수 있으므로 호출이 단순화됩니다.
def person(name, age, *, city='Beijing', job): print(name, age, city, job) |
명명된 키워드 매개변수 city에는 기본값이 있으므로 호출 시 도시 매개변수를 전달할 수 없습니다.
>>> ', 24 , job='Engineer') Jack 24 Beijing Engineer |
명명된 키워드 매개변수를 정의할 때 변수 매개변수가 없으면 구분 기호 *를 쓰는 것을 잊지 마세요. 그렇지 않으면 정의가 위치에 따라 정의됩니다. 매개변수.
8.2.5 등가 함수 호출
출력 결과는 동일하지만 호출 방법이 다릅니다.
참고: 함수 호출이 원하는 출력을 생성하는 한 어떤 호출 방법을 사용하는지는 중요하지 않습니다. 가장 이해하기 쉬운 호출 방법을 사용하세요.
8.2.6 빈 함수(pass)
아무것도 하지 않는 빈 함수를 정의하려면 pass 문을 사용할 수 있습니다.
def nop(): pass |
pass 문은 아무 작업도 수행하지 않습니다. Pass는 자리 표시자로 사용될 수 있습니다. 예를 들어 함수 코드를 작성하는 방법을 아직 파악하지 못한 경우 코드가 실행될 수 있도록 먼저 pass를 넣을 수 있습니다.
8.2.7 실제 매개변수 오류 방지
실제 매개변수가 제공되지 않고 실제 매개변수 순서가 잘못되었으며 실제 매개변수 형식(따옴표 등)에 주의가 기울이지 않습니다.
8.2.8 전역문(전역변수)
함수에서 전역변수에 저장된 값을 수정하려면 해당 변수에 전역문을 사용해야 합니다.
8.3 반환 값
함수는 항상 출력을 직접 표시하지는 않지만 일부 데이터를 처리하고 값 또는 값 집합을 반환할 수 있습니다. 함수가 반환하는 값을 반환값이라고 합니다. 함수의 반환 값은 return 문을 사용하여 반환됩니다.
함수 내에서 return 문을 사용하여 함수를 호출한 코드 줄에 값을 반환할 수 있습니다. 반환 값을 사용하면 프로그램의 무거운 작업 대부분을 함수로 이동하여 기본 프로그램을 단순화할 수 있습니다.
8.3.1 여러 값 반환
import math 문은 수학 패키지를 가져오는 것을 의미하며 후속 코드에서 수학 패키지의 sin, cos 및 기타 함수를 참조할 수 있습니다. 여러 값을 반환할 수 있습니다.
>>>
| 사실 이것은 단지 환상일 뿐이며 Python 함수는 여전히 단일 값을 반환합니다.
(151.96152422706632, 70.0) 반환값은 튜플입니다! 그러나 구문상 튜플을 반환할 때 괄호는 생략할 수 있으며, 여러 변수가 동시에 튜플을 받아 위치에 따라 해당 값을 할당할 수 있으므로, 파이썬의 함수는 여러 값을 반환합니다. 실제로는 튜플을 반환하지만 작성하는 것이 더 편리합니다. 8.3.2 실제 매개변수를 선택사항으로 만드세요if 문을 사용하여 이 실제 매개변수가 필요한지 여부를 결정하세요. 8.3.3 사전 반환이 함수는 목록 및 사전과 같은 보다 복잡한 데이터 구조를 포함하여 모든 유형의 값을 반환할 수 있습니다. 8.3.4 반환 함수고차 함수는 함수를 매개변수로 받는 것 외에도 함수를 결과 값으로 반환할 수도 있습니다. 즉시 합산할 필요가 없으면 합산 결과를 반환할 수 없지만 합산 함수를 반환합니다:
lazy_sum()을 호출할 때 반환은 평화의 결과가 아니라 조화 함수의 합입니다.
def get_formatted_name(first_name, last_name):
8.3.6 Closure
익명 함수 람다 x: x * x가 실제로는
키워드 람다(lambda)는 익명 함수를 나타내고, 콜론 앞의 x는 함수 매개변수를 나타냅니다. 익명 함수에는 하나의 표현식만 가질 수 있다는 제한이 있습니다. 반환 값은 표현식의 결과입니다. 익명 함수를 사용하면 함수에 이름이 없으므로 함수 이름 충돌을 걱정할 필요가 없다는 장점이 있습니다. 또한 익명 함수는 함수 개체이기도 합니다. 익명 함수를 변수에 할당한 다음 해당 변수를 사용하여 함수를 호출할 수도 있습니다.
|
위 내용은 Python 기본 소개--함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Python은 데이터 과학, 웹 개발 및 자동화 작업에 적합한 반면 C는 시스템 프로그래밍, 게임 개발 및 임베디드 시스템에 적합합니다. Python은 단순성과 강력한 생태계로 유명하며 C는 고성능 및 기본 제어 기능으로 유명합니다.

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 같은 작업에 적합합니다.

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

Python 3.6에 피클 파일로드 3.6 환경 보고서 오류 : modulenotfounderror : nomodulename ...

경치 좋은 스팟 댓글 분석에서 Jieba Word 세분화 문제를 해결하는 방법은 무엇입니까? 경치가 좋은 스팟 댓글 및 분석을 수행 할 때 종종 Jieba Word 세분화 도구를 사용하여 텍스트를 처리합니다 ...


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.
