제로 기반 학습 Python|Python 고급 학습 6일차--기능

작성자 홈페이지: 프로그래밍 나침반

저자 소개: Java 분야의 고급 크리에이터, CSDN 블로그 전문가
, CSDN 콘텐츠 파트너, Nuggets 초대 작성자, Alibaba Cloud 블로그 전문가, 51CTO 초대 작성자, 다년간의 건축가 디자인 경험, Tencent 강의실 상주 강사

주요 내용 : Java 프로젝트, Python 프로젝트, 프론트 엔드 프로젝트, 인공 지능 및 빅 데이터, 이력서 템플릿, 학습 자료, 면접 문제 은행, 기술 상호 지원

즐겨찾기, 좋아요, 헤매지 마세요 작가님을 팔로우하면 좋아요

기사 끝 부분에서 소스 코드를 얻으십시오.

3. 모듈형 프로그래밍을 실현하는 기능

프로그래밍 언어에서 함수는 주로 관련 코드를 캡슐화하고, 모듈식 프로그래밍을 실현하고, 코드 재사용 가능 설정을 완료하는 데 사용됩니다. Python에는 내장 함수와 사용자 정의 함수가 있습니다.

3.1 함수 정의 및 호출

문법:

def functionname([parameterlist]):
   ['''comments''']
   [functionbody]

* functionname: 函数名
* parameterlist: 参数列表
* comments: 说明
* functionbody : 函数体

예: 위험한 문자를 필터링하는 filterchar() 함수 정의

def filterchar(string):
   '''功能说明:过滤指定的字符串,并将过滤后的结果输出
      没有返回值
   '''
   import re     #导入Python的re模块
   pattern = r'(黑客)|(抓包)|(监听)|(Trojan)'   #模式字符串
   sub = re.sub(pattern,'@_@',string)   #进行模式替换
   print(sub)

함수 호출을 위한 기본 구문입니다.

functionname([parametersvalue])

예:

str = '我是一名热爱黑客的程序员,喜欢研究Trojan'
filterchar(str)

함수를 정의한 후 무엇을 해야 할지 모르겠다면 pass를 사용하여 함수 본문을 채우거나 '...'을 사용하여 코드 생략을 나타낼 수 있습니다.

def functionname():
    pass
    
def functionname():
    ...

3.2 매개변수 전달

매개변수의 역할은 사용할 함수에 데이터를 전달하고 함수 본문에서 해당 데이터 처리를 수행하는 것입니다.

형식 매개변수: 형식 매개변수(formal paramter)로 줄여서 함수를 정의할 때 괄호 안의 매개변수를 의미합니다. 영화 대본 속 인물처럼.

실제 매개변수: 실제 매개변수로 약칭하며, 함수 호출 시 전달되는 실제 매개변수 값을 의미합니다. 영화배우가 연기하는 것처럼요.

실제 매개변수의 종류에 따라 값 전송(유형이 불변 유형)과 참조 전송(유형이 가변 유형)으로 구분됩니다. 둘의 구체적인 차이점은 값으로 전달하는 경우 형식 매개변수의 값이 변경되지만 실제 매개변수의 값은 변경되지 않고, 참조로 전달하는 경우 형식 매개변수의 값이 변경되고 의 값이 변경된다는 점입니다. 실제 매개변수도 변경됩니다.

예:

#值传递和引用传递
def demo(obj):
    print("原值:",obj)
    obj += obj
#调用函数
print("---------值传递--------")
mot = "唯有在被追赶的时候,你才能真正的奔跑"
print("函数调用前:",mot)
demo(mot)
print("函数调用后:",mot)
print("---------引用传递--------")
list1 = ['邓肯','吉诺比利','帕克']
print("函数调用前:",list1)
demo(list1)
print("函数调用后:",list1)

매개변수를 전달할 때 수량 및 데이터 유형 요구사항은 함수 정의 시 매개변수 요구사항과 일치합니다. 또한 키워드 매개변수를 통해 전달될 수도 있으므로 매개변수 위치를 정의와 일치하게 유지할 필요가 없습니다.

예를 들어:

functionname(height=20,width=30,height=50)

매개변수 기본값: 매개변수에 기본값을 지정할 수도 있으므로 매개변수를 전달하지 않고도 호출할 수 있습니다.

#函数参数默认值
def abc(str='aaa'):
    print(str)

abc()

가변 매개변수: 하나는 *매개변수이고 다른 하나는 **매개변수입니다.

*parameter : 튜플에서 허용되는 실제 매개변수 수에 제한이 없음을 나타냅니다.

예:

#定义可变参数
def printplayer(*name):   #定义输出我喜欢的NBA球员函数
    print('\n 我喜欢的NBA球员有:')
    for item in name:
        print(item)    #输出球员名称

printplayer('邓肯')
printplayer('邓肯','乔丹','大佛')

기존 목록을 매개변수로 사용하려면 목록 이름 앞에 *를 추가하면 됩니다.

param =['邓肯','乔丹','大佛']
printplayer(*param)

**매개변수: 표시 값의 개수에 관계없이 할당할 수 있는 여러 매개변수가 허용되어 사전에 입력됨을 나타냅니다.

#可变参数
def printsign(**sign):
    print()
    for key,value in sign.items():
        print("["+key+"] 的绰号是:"+value)

printsign(邓肯='石佛',罗宾逊='海军上将')

기존 사전을 가변 매개변수로 전달하려면 매개변수 이름 앞에 **를 추가하면 됩니다.

param ={'邓肯':'石佛','罗宾逊':'海军上将'}
printsign(**param)

3.3 반환값

함수가 실행된 후 해당 실행 결과가 반환될 수 있습니다.

예:

#函数返回值
def fun_checkout(name):
    nickname=""
    if name == '邓肯':
        nickname = '石佛'
    elif name == '吉诺比利':
        nickname = '妖刀'
    elif name == '罗宾随逊':
        nickname = '海军上将'
    else:
        nickname = '查无此人'
    return nickname

while FutureWarning:
    name = input("请输入NBA求员的名称:")
    nickname = fun_checkout(name)
    print("球 员:",name,"绰号:",nickname)

3.4 변수의 범위

지역변수(Local Variable) : 함수 내부에 정의된 변수를 말하며, 함수 내부에서만 사용할 수 있다.

글로벌 변수: 함수 외부에서 변수를 정의하면 함수 외부나 함수 내부에서 사용할 수 있으며, 함수 본문에 정의된 변수 이름 앞에 global 키워드를 추가하면 이 변수도 글로벌 변수가 될 수 있습니다.

예:

#局部变量
def fun_variable():
    var_name = '指南针毕业设计出品'
    print(var_name)

fun_variable()
print(var_name)   #函数名使用局部变量时,抛出 NameError

예:

#全局变量
var_name = '指南针毕业设计出品'
def fun_variable():
    print(var_name)

fun_variable()
print(var_name)

예:

#全局变量
def fun_variable():
    global var_name
    var_name = '指南针毕业设计出品'
    print(var_name)

fun_variable()
print(var_name)

3.5 익명 함수

함수 이름을 지정하지 않으면 일반적으로 일시적인 일회성 호출입니다.

result = lambda[args[,args,..argn]]:expression

* result:用于调用lambda表达式
* [arg1[,arg2,...argn]]:可选参数,用于指定要传的参数列表,多个参数间用,号分隔
* expression:必须参数,用于指定一个实现具体功能的表达式.

예: 원의 반지름 계산

import math
def circlearea(r):
   result = math.pi*r*r
   return result
r = 10
print("半径为",r,"的圆的面积为:",circlearea(r))

익명 함수를 사용하여 다음을 달성하는 경우:

import math
r = 10
result = lambda r:math.pi*r*r
print("半径为",r,"的圆的面积为:",result(r))

3.6 Python에서 일반적으로 사용되는 내장 함수

여기에 이미지 설명을 삽입하세요여기에 이미지 설명을 삽입하세요

рекомендация

отblog.csdn.net/whirlwind526/article/details/132402700
рекомендация