Citar
Tengo entendido que el *args sirve para expandir los parámetros a listas,
en realidad es que recibe los argumentos en forma de una lista o una tupla en todo caso, o sea:
Código
sumar((1,2,3,4)) #una tupla sumar([5,6]) # una lista
es lo mismo en cuanto a la funcionalidad.
con respecto a tu código, se puede resumir a:
Código
def sumar(*args): #*args usa listas o tuplas return sum(*args) # python ya trae funciones predefinidas a = [int(x) for x in input("Ingresa los números a sumar (Separados con un espacio) : ").split()] #¿para qué usar *args si solo serán dos números? # es necesario pasar cadena a entero print(sumar(a))
Edito:
por las dudas, el método int() intenta pasar de cadena a entero
Código
a = int(input("número "))
si ingreso 10 input lo devuelve como cadena, pero al estar dentro del int, devolverá un entero
el problema es que es quisquilloso con la entrada en tu caso no se puede ingresar espacios, lo ideal es ingresar de a un número, pero entonces deberías usar un condicional si es que no sabés cuantos enteros ingresará el usuario, por eso en tu caso simplemente tomamos una lista de caracterés, sacamos los espacios y a la lista de cadenas la pasamos a lista de enteros.