HOWTO · Python

Evite el TypeError: entrada esperada como máximo 1 argumento, obtuvo 3 en Python

En esta guía, entenderemos cómo resolver el TypeError: entrada esperada como máximo 1 argumento, obtuvo 3. También entenderemos las causas de este error. Casi todos los programas informáticos utilizan la declaración de entrada para tomar datos o comandos de los usuarios y proporcionarlos al software para lograr una tarea o comportamiento específico.

En la programación de Python, tenemos dos métodos integrados para tomar la entrada del usuario: input(prompt) y raw_input(prompt). El segundo método, raw_input(prompt), se usa en las versiones anteriores de Python como 2.X, y input(prompt) todavía está en uso.

Este artículo se centrará en el método input(prompt).

Tomar la entrada del usuario en Python

En Python, usaremos la función integrada input() para recibir información de los usuarios y usarla en el programa en consecuencia.

Uso de la función input() en Python:

name = input("Hey! What is your name? ")
print("Nice to meet you ", name)

Producción :

Hey! What is your name? Zeeshan Afridi
Nice to meet you  Zeeshan Afridi

En el programa anterior, hemos utilizado la función input(prompt) para solicitar el nombre del usuario. A medida que el usuario ingresa su nombre, se almacenará en la variable nombre, que luego puede utilizar en su programa en cualquier lugar que lo necesite.

Evite el error TypeError: entrada esperada como máximo 1 argumento, obtuvo 3 Error en Python

En la programación de computadoras, TypeError es un error sintáctico que significa que el desarrollador ha cometido algunos errores al escribir el programa debido a una sintaxis de entrada no válida o al pasar argumentos adicionales a las funciones. Y uno de los errores comunes es TypeError: entrada esperada como máximo 1 argumento, obtuvo 3.

Entendámoslo a través de un ejemplo:

name = input("Please enter your name: ")
age = input("Please enter your age: ")
print("Your good name is ", name, " and your age is ", age)

goal = input("What is your life goal Mr. ", name, " ?")
print(goal)
print("Awesome!")

Producción :

Please enter your name: Zeeshan Afridi
Please enter your age: 24
Your good name is  Zeeshan Afridi  and your age is  24

TypeError: input expected at most 1 argument, got 3

En el programa anterior, las primeras 3 líneas se ejecutan sin problemas, pero la siguiente línea de código objetivo = entrada ("¿Cuál es el objetivo de su vida, Sr. ", nombre, "?") arroja un error TypeError: entrada esperada como máximo 1 argumento, obtuvo 3.

Esto se debe a que la función input() de Python solo espera un único argumento, pero hemos pasado tres argumentos a la función input(). El primer argumento es la cadena ¿Cuál es su meta en la vida, señor?, el segundo argumento es la variable nombre, y el último argumento es nuevamente una cadena ?.

Hemos separado estos argumentos con la coma ,, que indica que cada uno es un argumento independiente. Pero, si desea imprimir el indicador de entrada tal como está, debe concatenar estos argumentos para que sea un solo argumento para cumplir con las expectativas de la función input().

Entendámoslo a través de un ejemplo:

name = input("Please enter your name: ")
age = input("Please enter your age: ")

print("\nYour good name is ", name, " and your age is ", age)

goal = input("What is your life goal Mr. " + name + " ? ")
print("Awesome!")

Producción :

Please enter your name: Zeeshan Afridi
Please enter your age: 24

Your good name is  Zeeshan Afridi  and your age is  24
What is your life goal Mr. Zeeshan Afridi ? To be a Python Developer
Awesome!

En el programa anterior, hemos concatenado el argumento de la función input() con la ayuda del símbolo más + para convertirlos en un único argumento y evitar el error TypeError de entrada.