Cela dépend de ce que vous essayez de faire. Très probablement, vous voulez passer l'entrée d'utilisateur à l'appel de fonction plutôt que la définition:
def function(a, b):
print(a, b)
a = input('give me a ')
b = input('give me b ')
function(a, b)
Cependant, si vous voulez passer une entrée utilisateur donné comme argument par défaut à une fonction, vous pouvez le faire comme ça :
def function(a=input('give me a '), b=input('give me b ')):
print(a, b)
function() # prints whatever the user inputted when the file was initially run
la raison pour laquelle votre code soulève une exception parce que le contenu de la ()
dans une fonction définition (par opposition à une fonction appel, c.-à-function()
) est le nom des paramètres plutôt que les arguments transmis à la fonction. Vous pouvez utiliser input()
dans cette partie de la signature de fonction uniquement si vous l'affectez en tant que valeur par défaut à associer à un nom de paramètre, comme je l'ai fait ci-dessus. Ce deuxième cas d'utilisation semble assez étrange, et à chaque fois que function()
est appelé, les mêmes arguments que les valeurs par défaut que l'utilisateur a initialement saisis lui seront transmis. Même si c'est ce que vous voulez faire, vous devriez probablement le faire à la place:
input_a = input('give me a ')
input_b = input('give me b ')
def function(a=input_a, b=input_b:
print(a, b)
function()
Alternativement, si vous voulez obtenir une autre paire d'entrées à chaque fois que la fonction est appelée (ce qui semble en fait le plus probable maintenant que J'y pense):
def function():
a = input('give me a ')
b = input('give me b ')
print(a, b)
Vous devriez ajouter votre programme d'exemple démontrant comment vous faites exactement référence et essayez de les traiter. Par exemple, votre 'def function' est syntaxiquement incorrecte, car elle doit répertorier les noms d'arguments - pas les actions effectuées. –