IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Utilisation de def pour les fonctions


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2021
    Messages : 38
    Par défaut Utilisation de def pour les fonctions
    Hello tout le monde, j'ai une question, voici un script quelconque ci-dessous juste pour l'exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def fonction(tab):
    	g=0
    	for i in range(10):
    		while g<9 and tab[i]>=tab[g+1]:
    			print(tab[i],end="")
    			g = g+1
     
    tab = [1,2,3,4,5,6,7,8,9,10]						
    fonction(tab)
    Ce que j'aimerais faire c'est recall la fonction mais à la place de >= ce serait un <= dans le while dans le but de print un autre résultat.
    Question : y-a-t-il un moyen de call la fonction en jouant avec des arguments pour arriver à mes fins donc forcément sans à retaper la fonction initiale?...

    Merci par avance!

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Une des solutions possibles:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def fonction(tab, sup=True):
        if sup:
            cond = lambda g, i: g<9 and tab[i]>=tab[g+1]
        else:
            cond = lambda g, i: g<9 and tab[i]<=tab[g+1]        
        g=0
        for i in range(10):
            while cond(g, i):
                print(tab[i],end="")
                g = g+1
        print()
    A l'appel, l'argument sup à True ou à False donnera l'une ou l'autre des conditions ">=" et "<=".

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 739
    Par défaut
    Salut,

    Citation Envoyé par Nooboutin Voir le message
    Question : y-a-t-il un moyen de call la fonction en jouant avec des arguments pour arriver à mes fins donc forcément sans à retaper la fonction initiale?..
    L'idée est de remplacer l'expression "a <= b" par l'appel à une fonction f(a, b) qui produira la même chose (un booléen):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def f(a, b):
         return a <= b
    Après est-ce qu'on passe à "fonction" directement la fonction ou une chaine de caractère qui permettra de récupérer la fonction de comparaison à appliquer sera un choix d'implémentation, d'interface: comment l'utilisateur/l'appelant de la fonction devra utiliser fonction pour arriver à ses fins.

    note: dans les bibliothèques standards, le module operator définit déjà les fonctions operator.le et operator.ge.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 831
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Nooboutin Voir le message
    Question : y-a-t-il un moyen de call la fonction en jouant avec des arguments pour arriver à mes fins donc forcément sans à retaper la fonction initiale?...
    Oui bien sûr, suffit de passer la fonction de comparaison à ta fonction. Une fonction n'étant qu'un objet, elle peut parfaitement être envoyée à une autre fonction qui peut alors l'utiliser en interne.

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    def fonction(tab, comp):
    	g=0
    	for i in range(10):
    		while g<9 and comp(tab[i], tab[g+1]):
    			print(tab[i],end="")
    			g = g+1
    		# while
    	# for
    # fonction()
     
    tab = [1,2,3,4,5,6,7,8,9,10]						
    fonction(tab, lambda x, y: x >= y)
    fonction(tab, lambda x, y: x <= y)
     
    import operator
    fonction(tab, operator.ge)
    fonction(tab, operator.le)
    #fin
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2021
    Messages : 38
    Par défaut
    Merci infiniment tous! C'est ce que je voulais savoir. On est donc obligé de faire une seconde fonction pour la condition et de l'imbriquer avec la fonction principale. Merci encore vous avez assuré!

Discussions similaires

  1. Utilisation des références pour les tableaux
    Par Bouboubou dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 14/12/2005, 13h47
  2. utilisation de UpdateResource pour les icônes ?
    Par JuanLopez1966 dans le forum Windows
    Réponses: 5
    Dernier message: 12/01/2005, 08h13
  3. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo