argumentos predeterminados de python

Funciones y métodos de Python

Un argumento puede tener un valor predeterminado en una función de Python. Si especifica argumentos con valores predeterminados, deben ir después de los argumentos sin valores predeterminados. De lo contrario, encontrará un & ldquo; SyntaxError: el argumento no predeterminado sigue al argumento predeterminado & rdquo; error.

En esta guía, hablamos sobre lo que significa este error y por qué se genera. Analizamos un ejemplo de este error para ayudarlo a comprender cómo resolverlo en su código.




SyntaxError: el argumento no predeterminado sigue al argumento predeterminado

Python asigna argumentos a variables en el orden en que aparecen en una llamada de función.

Los argumentos predeterminados deben ir antes que los argumentos no predeterminados. Esto se debe a que los argumentos no predeterminados son obligatorios.

Mientras que los valores predeterminados tienen un valor incluso si no se especifica uno, un argumento no predeterminado no lo tiene. Los argumentos predeterminados no tienen ningún propósito si tiene que indicar un valor para cada uno de ellos.

Considere el siguiente código:

 def test_function (score = 25, class = 6, name): pass test_function (" John ", 22) 

En este código, Python no sé si & ldquo; John & rdquo; se asigna a & ldquo; nombre & rdquo; o "puntuación". Tenemos que usar explícitamente los valores que se asignarán a cada argumento en nuestra llamada de función:

 test_function (name = "John", score = 22) 

Esta sintaxis es más detallada que si solo indica los argumentos predeterminados antes que los no predeterminados.

81% de los participantes dijeron que se sentían más seguros de sus perspectivas laborales después de asistir a un bootcamp. Asigne a un bootcamp hoy mismo.

El graduado promedio de bootcamp pasó menos de seis meses en la transición de carrera, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Alternativamente, podemos asignar un valor para cada argumento. Esto frustra el propósito de tener argumentos con valores predeterminados.

En una función, el orden en el que deben aparecer los argumentos es:

Si si no cumple con este orden, Python devuelve un mensaje de error.




Un escenario de ejemplo

Escriba un programa que calcule el porcentaje que un estudiante ha ganado en una prueba.


Comience por definir una función que calcule el porcentaje que un estudiante obtuvo en una prueba:

 def calculate_percentage (out_of = 100, score): return out_of / score * 100 

Nuestra función acepta dos argumentos: la puntuación que obtuvo un estudiante y la cantidad de puntos disponibles. A continuación, pida a un usuario que presente su puntuación de la prueba y la cantidad de puntos disponibles en la prueba:

 user_score = float (input ("¿Cuántas marcas recibiste en la prueba?")) total_available = float (input ( "¿Cuántas marcas estaban disponibles en la prueba?")) 

Convertimos ambos valores que un usuario inserta en números de punto flotante así podemos realizar una operación matemática con ellos. Luego, llame a nuestra función y pase los valores que nuestro usuario insertó a través de nuestra función:

Una vez que nuestro programa calcula el porcentaje que un estudiante obtuvo en una prueba, imprimimos ese valor en la consola. Redondeamos el porcentaje a dos lugares decimales usando el método round () . Ejecute nuestro código y vea qué sucede:

 Archivo "main.py", línea 1 def calculate_percentage (out_of = 100, puntuación): ^ SyntaxError: el argumento no predeterminado sigue al argumento predeterminado 

Nuestro código devuelve un error. Solucionemos este problema.




La solución

Hemos especificado un argumento predeterminado antes de un argumento no predeterminado en nuestra función calculate_percentage:

 def calculate_percentage (out_of = 100, score): 

Esto hace que el propósito de tener un argumento predeterminado sea inútil. ¿Cómo sabrá Python qué valor debe establecerse para & ldquo; puntuación & rdquo; si solo especificamos un valor?

Para resolver este problema, tenemos que cambiar el orden de nuestros argumentos para que nuestros argumentos predeterminados aparezcan al final. Cambiemos nuestro código:

 def calculate_percentage (puntuación, out_of = 100): 

Intente ejecutar nuestro código:

 ¿Cuántas marcas recibió en la prueba? 67 ¿Cuántas marcas estaban disponibles en la prueba? 100 Ha recibido una calificación del 67.0% en su examen. 

Nuestro código calcula con éxito el porcentaje que un estudiante ha obtenido en su examen.


< / a>


Conclusión

El error de Python & ldquo; SyntaxError: el argumento no predeterminado sigue al argumento predeterminado & rdquo; aparece cuando especifica un argumento predeterminado antes de un argumento no predeterminado.

Para resolver este error, asegúrese de organizar todos los argumentos en una función de modo que los argumentos predeterminados vengan después de los argumentos no predeterminados. El orden en el que deben aparecer los argumentos es: no predeterminado, predeterminado, palabra clave, palabra clave variable.

¡Ahora está listo para resolver este error común de Python como un codificador experto !





argumentos predeterminados de python: StackOverflow Questions

Tutorials