Aprendizaje basado en cero Python | Aprendizaje avanzado de Python día 6: función

Página de inicio del autor: Brújula de programación

Sobre el autor: creador de alta calidad en el campo de Java, experto en blogs de CSDN
, socio de contenido de CSDN, autor invitado de Nuggets, experto en blogs de Alibaba Cloud, autor invitado de 51CTO, muchos años de experiencia en diseño de arquitectos, profesor residente del aula Tencent

Contenido principal: proyecto Java, proyecto Python, proyecto front-end, inteligencia artificial y big data, plantilla de currículum, materiales de aprendizaje, banco de preguntas de entrevistas, asistencia técnica mutua

Favoritos, me gusta, no te pierdas, es bueno seguir al autor.

Obtenga el código fuente al final del artículo.

3. La función realiza programación modular.

En los lenguajes de programación, las funciones se utilizan principalmente para encapsular códigos relacionados, realizar programación modular y completar configuraciones reutilizables de código. Python tiene funciones integradas y funciones personalizadas.

3.1 Definición y llamada de funciones

gramática:

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

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

Ejemplo: definir una función filterchar() que filtre caracteres peligrosos

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

Sintaxis básica para llamar a funciones.

functionname([parametersvalue])

Ejemplo:

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

Si no sabe qué hacer después de definir una función, puede usar pass para completar el cuerpo de la función o usar '...' para indicar la omisión del código.

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

3.2 Paso de parámetros

La función de los parámetros es pasar datos a la función para su uso y realizar el procesamiento de datos correspondiente en el cuerpo de la función.

Parámetros formales: Abreviados como parámetros formales, se refieren a los parámetros entre paréntesis al definir una función. Como un personaje de guión de película.

Parámetro real: abreviado como parámetro real, se refiere al valor del parámetro real pasado al llamar a la función. Como un actor interpretando un papel de película.

Según los diferentes tipos de parámetros reales, se divide en transferencia de valor (el tipo es un tipo inmutable) y transferencia de referencia (el tipo es un tipo variable). La diferencia específica entre los dos es que al pasar por valor, el valor del parámetro formal cambia, pero el valor del parámetro real permanece sin cambios; al pasar por referencia, el valor del parámetro formal cambia y el valor de el parámetro real también cambia.

Ejemplo:

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

Al pasar parámetros, los requisitos de cantidad y tipo de datos son consistentes con los requisitos de parámetros al definir funciones. También se puede pasar a través de parámetros de palabras clave, de modo que no sea necesario mantener la posición del parámetro coherente con la definición.

Por ejemplo:

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

Valor predeterminado del parámetro: también puede especificar un valor predeterminado para el parámetro, de modo que pueda llamar sin pasar el parámetro

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

abc()

Parámetros variables: uno es *parámetro, el otro es **parámetro

*parámetro: Indica que se acepta cualquier número de parámetros reales en una tupla.

Ejemplo:

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

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

Si desea utilizar una lista existente como parámetro, puede agregar * antes del nombre de la lista

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

**parámetro: indica que se aceptan y se colocan en un diccionario varios parámetros a los que se les puede asignar cualquier número de valores de visualización.

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

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

Si desea pasar un diccionario existente como parámetro variable, puede agregar ** antes del nombre del parámetro:

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

3.3 valor de retorno

Una vez ejecutada la función, se puede devolver el resultado de ejecución relevante.

Ejemplo:

#函数返回值
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 Alcance de las variables

Variable local: se refiere a la variable definida dentro de la función, que solo se puede usar dentro de la función.

Variable global: si una variable se define fuera de la función, se puede usar fuera de la función o dentro de la función; agregue la palabra clave global antes del nombre de la variable definida en el cuerpo de la función, y esta variable también puede convertirse en una variable global.

Ejemplo:

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

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

Ejemplo:

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

fun_variable()
print(var_name)

Ejemplo:

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

fun_variable()
print(var_name)

3.5 Funciones anónimas

Si no especifica un nombre para la función, generalmente es una llamada única y temporal.

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

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

Ejemplo: calcular el radio de un círculo

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

Si utiliza una función anónima para lograr lo siguiente:

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

3.6 Funciones integradas de uso común de Python

inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/whirlwind526/article/details/132402700
Recomendado
Clasificación