-2
votes

Est-il possible d'appeler une fonction qui nécessite un paramètre, sans elle? Sur python

J'apprends à coder sur Python 3.x en utilisant l'exerisme. Je dois coder un conditionnel (sur un fichier secondaire) pour renvoyer une chaîne en fonction d'un mot envoyé à partir d'une fonction principale:

fonction utilisateur: xxx

Fonction principale: xxx

Le problème est que , pour la première condition de la fonction principale, il appelle deux_fer () sans condition conditionnelle, ce qui entraîne une fonction d'échec.

La fonction principale n'est censée pas être modifiée, est-ce un moyen de résoudre le problème que par l'utilisateur fonctionner?

Merci d'avance.


3 commentaires

Utilisez une valeur par défaut pour le paramètre?


Oui comme mentionné ci-dessus, vous pouvez ajouter une valeur par défaut à l'aide de la fonction Paramètres (paramètre = quelque chose) ou utilisez une fonction Lambda pour appeler une fonction normale avec des paramètres.


Je pense que vous avez besoin def deux_fer (nom = "):


4 Réponses :


2
votes

Vous pouvez changer: xxx

à: xxx

qui ne fera aucun nom par défaut


0 commentaires

0
votes

Vous pouvez utiliser un paramètre par défaut, c'est-à-dire aucun et vérifier si la fonction reçue n'importe quel paramètre ou non.

fonction utilisateur: strong> p>

def two_fer(name = None):
    if name != None:
        string = "One for " + name + ", one for me."
    else:
        string = "One for you, one for me."
    return string


1 commentaires

Utiliser est pour la comparaison avec Aucun , i.e. si le nom n'est pas Aucun:



0
votes

Utilisez un paramètre par défaut comme suit

def two_fer(name=None):
    if name:
        s = "One for " + name + ", one for me."
    else:
        s = "One for you, one for me."
return s


0 commentaires

1
votes

Si vous donnez Nom code> une valeur par défaut de "vous" code>, vous pouvez appeler la fonction sans argument explicite et em> se débarrasser de la si code> relève. XXX Pré>

ou mieux encore, P>

def two_fer(name="you"):
    return "One for {}, one for me".format(name)


0 commentaires