"Aprender Python contigo de la mano" 28: el valor de retorno de una función personalizada

En el artículo anterior "Aprendiendo Python contigo de la mano" 27-Parámetros de funciones personalizadas , aprendimos varios tipos de parámetros de funciones personalizadas. En este artículo, aprenderemos el valor de retorno de una función personalizada e introduciremos la aplicación del valor de retorno.

Ya sabemos que una función personalizada es un bloque de código que comienza con la palabra clave def y termina con la palabra clave return. El retorno es la palabra clave que devuelve el valor de retorno.

En los dos primeros artículos, aunque no se hace énfasis en explicar, de hecho, se han enumerado varios ejemplos de uso de valores devueltos en los ejemplos, como devolver el resultado de lanzar un dado, devolver el nombre del ganador, devolviendo el resultado de la suma o el cálculo del área y muchos más.

Pero también descubrimos que no todas las funciones personalizadas tienen un valor de retorno. Por ejemplo, en los varios ejemplos de parámetros de longitud variable del artículo anterior, la función personalizada solo tiene la palabra clave def en lugar de la palabra clave return. En este momento, la función personalizada solo se ejecutará hasta la última línea de comando de la función (como la impresión en el ejemplo del parámetro de longitud variable), y no devolverá ningún resultado al programa principal, o solo devolverá el control Ninguno.

Debido a los dos casos anteriores, uno es relativamente simple, con solo un valor de retorno, y hay ejemplos introducidos antes; el otro no involucra valores de retorno y declaraciones de retorno, y no introduce demasiado. Hoy, nos centraremos en cómo devolver múltiples valores, que también es una característica de Python que a menudo necesitamos usar en análisis de datos posteriores.

Hay un ejemplo muy simple para mostrar cómo devolver varios valores:

In [1]: def f(): 
            a = 1
            b = 2
            c = 3
            return a, b, c

        a, b, c = f()
        print(a, b, c)

Out[1]: 1 2 3

En este ejemplo, la función personalizada f () logra dos propósitos, uno es definir el valor de abc y el otro es devolver el valor de abc.

La línea de comando más importante en el programa principal es asignar abc, y se asigna en una correspondencia uno a uno con el valor de retorno de la función. Aunque los nombres de las variables que se utilizan aquí son los mismos, de hecho, el proceso de asignación no se basa en el nombre de la variable, la clave es el orden. Por ejemplo, ¿podemos modificar ligeramente el nombre de la variable y ordenar para ver qué sucede?

In [2]: def f():
            a = 1
            b = 2
            c = 3
            return a, b, c

        b, a, d = f()
        print(b, a, d)

Out[2]: 1 2 3

Podemos ver que aunque el nombre y el orden de la variable han cambiado, el resultado se sigue asignando e imprimiendo en el orden del valor de retorno, sin ser modificado por el ajuste del nombre o posición de la variable.

Entonces, a partir de esta característica del valor de retorno, me pregunto si puede pensar en una estructura de datos que hayamos aprendido antes. Sí, es una tupla, una estructura de datos inmutable y de longitud fija.

Entonces, parece que la función devuelve varios valores, pero de hecho solo devuelve un objeto, que es una tupla. Por lo tanto, el valor de retorno en el ejemplo anterior se puede recibir con un nombre de variable. La variable después de la asignación es una tupla y tiene todas las características de una tupla para que la usemos.

In [3]: def f():
            a = 1
            b = 2
            c = 3
            return a, b, c

        tup = f()
        print(tup)

Out[3]: (1, 2, 3)

Además de las tuplas, las funciones personalizadas también pueden devolver varios valores a través de un diccionario.

In [4]: def f():
            a = 1
            b = 2
            c = 3
            return {'A': a, 'B': b, 'C': c}

        dic = f()
        print(dic)
        print(dic['C'])   # 可以应用字典的各类特性

Out[4]: {'A': 1, 'B': 2, 'C': 3}
        3

El método de devolver múltiples valores es, por supuesto, indispensable para las listas.

In [5]: def f():
            a = 1
            b = 2
            c = 3
            return [a, b, c]

        lst = f()
        print(lst)

Out[5]: [1, 2, 3]

En la actualidad, hemos introducido varias situaciones en las que los valores se devuelven en forma de tuplas, diccionarios y listas, entre las estructuras de datos que hemos aprendido todavía hay una falta de forma, es decir, conjuntos. Ya sabemos que la mayor diferencia entre una colección y otras estructuras de datos centralizadas es que no contiene valores duplicados. Entonces, echemos un vistazo a lo que sucede si una función devuelve un valor como un conjunto y el valor de retorno incluye elementos repetidos.

In [6]: def f():
            a = 1
            b = 1
            c = 3
            return {a, b, c}

        set = f()
        print(set)

Out[6]: {1, 3}

Como pensamos, si el resultado de la función personalizada incluye elementos repetidos, y el valor se devuelve como una colección, se eliminarán los elementos repetidos y se devolverá una colección que no contenga los elementos repetidos.

Las anteriores son varias situaciones en las que una función personalizada devuelve múltiples valores de retorno.

De hecho, además de asignar valores a múltiples variables diferentes en secuencia en el primer ejemplo, la otra forma de devolver múltiples valores es "empaquetar" múltiples valores de retorno a través de diferentes estructuras de datos en la declaración de retorno.

Si muestra este proceso de otra manera, todos lo entenderán mejor. También devuelve varias instancias de valores a través del diccionario.

In [7]: def f():
            a = 1
            b = 2
            c = 3
            dic = {'A': a, 'B': b, 'C': c}
            return dic

        dic = f()
        print(dic)

Out[7]: {'A': 1, 'B': 2, 'C': 3}

Al "empaquetar" múltiples valores de retorno por adelantado, varios valores de retorno eventualmente se convertirán en un valor de retorno.

Entonces, conociendo esta verdad, no hay ningún misterio sobre los valores de retorno múltiples, es solo que falta una línea de oraciones, lo que lo hace aún más genial.

Lo anterior es nuestra introducción al valor de retorno de la función personalizada. Aunque hay varias formas, la clave es encontrar la forma más adecuada para que podamos devolver uno o más valores de la función personalizada a la línea de código que necesitamos. .

En este punto, la introducción de la parte de función personalizada ha llegado a su fin.

Debido a que las funciones son demasiado importantes, aunque la introducción de funciones personalizadas terminó, no podemos dejar la función todavía. En el próximo artículo, presentaremos una función especial llamada "función anónima", así que estad atentos.

 

 


¡Gracias por leer este artículo! Si tiene alguna pregunta, deje un mensaje y hablen juntos ^ _ ^

Para leer otros artículos de la serie "Aprendiendo Python contigo de la mano", sigue la cuenta oficial y haz clic en la selección del menú, o haz clic en el enlace de abajo para ir directamente.

"Aprender Python contigo de la mano" 1-¿Por qué aprender Python?

"Aprendiendo Python contigo de la mano" Instalación de 2 Python

"Aprender Python contigo de la mano" Instalación y configuración de 3-PyCharm

"Aprender Python contigo de la mano" 4-Hello World!

Cuaderno de 5 Jupyter "Aprendiendo Python contigo de la mano"

"Aprender Python contigo de la mano" Identificación de 6 cadenas

"Aprender Python contigo de la mano" 7-Index of Strings

"Aprender Python contigo de la mano" Rebanado de 8 cuerdas

"Aprender Python contigo de la mano" Operaciones de 9 cadenas

"Aprender Python contigo de la mano" Funciones de 10 cadenas

"Aprendiendo Python contigo de la mano" Salida formateada de 11 cadenas

"Aprender Python contigo de la mano" 12 números

"Aprender Python contigo de la mano" 13-Operación

"Aprendiendo Python contigo de la mano" 14-Entrada interactiva

"Aprender Python contigo de la mano" declaración de 15 juicios si

Declaración de 16 bucles "Aprendiendo Python contigo de la mano" mientras

"Aprendiendo Python contigo de la mano" 17-el final del ciclo

"Aprendiendo Python contigo de la mano" declaración de 18 bucles para

"Aprendiendo Python contigo de la mano" 19-Resumen de la primera etapa

Lista de 20 "Aprender Python contigo de la mano"

"Aprendiendo Python contigo de la mano" 21-Tuplas

"Aprender Python contigo de la mano" 22-Dictionary

"Aprender Python contigo de la mano" 23 Función de secuencia incorporada

Colección 24 "Aprender Python contigo de la mano"

"Aprendiendo Python contigo de la mano" Comprensión de 25 listas

"Aprender Python contigo de la mano" 26 funciones personalizadas

"Aprender Python contigo de la mano" 27 parámetros de funciones personalizadas

Para los fanáticos: siga la cuenta pública "también dijo Python", responda "Mano 28", puede descargar las oraciones de muestra utilizadas en este artículo de forma gratuita.

También hable sobre Python, un área de aprendizaje e intercambio para los amantes de Python

 

Supongo que te gusta

Origin blog.csdn.net/mnpy2019/article/details/110679573
Recomendado
Clasificación