Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

Répondre

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
neuf plus quatre-vingt six
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Retour

Résumé de la discussion (messages les plus récents en premier)

yoshi
28-10-2021 20:13:26

Bonsoir,

La date butoir pour rendre le DM étant passée,  je mets maintenant ma version non expurgée :

def f(x):
    return x**3

def Images_de_L(L):
    Images=[]
    for nb in L:
        l=f(nb)
        Images.append(l)
    return Images

print (Images_de_L([-4,-2,0,3,5]))

Lorsqu'on le lance, on obtient en retour :

[-64, -8, 0, 27, 125]

@+

[EDIT]
on peut aussi (pour le fun) écrire :

def f(x):
    return x**3

def Images_de_L(L):
    Images=[f(nb) for nb in L]
    return Images

 print (Images_de_L([-4,-2,0,3,5]))
 

Et de là l'idée vient "naturellement" de faire encore plus court :

def f(x):
    return x**3

def Images_de_L(L):
    return [f(nb) for nb in L]

 print (Images_de_L([-4,-2,0,3,5]))
 

Ces deux versions retournent bien le même résultat :
[-64, -8, 0, 27, 125]

yoshi
20-10-2021 12:07:35

Bonjour,

1. Tu n'es pas au bon endroit dans cette discussion : tu n'es pas en train de répondre à Mai2900 mais de parasiter sa discussion...
2. Parce que veux travailler sur les DM : tu devais ouvrir ta propre discussion. Comment ? Ouvre les yeux !
3.

dans le but de travailler avec vous sur les DM.

Si c'est pour aider les jeunes qui questionnent dans leurs DM partie programmation ou Maths, toute personne compétente est libre d'aider qui il veut, sous réserve de ne pas répéter la même chose que celui ou ceux qui ont déjà répondu... sans faire le travail à leur place !
4. Si c'est pour demander de l'aide pour toi : tu es libre de poser ta question (sans poser la même question sur d'autres forums : c'est très mal vu, incorrect, et insultant pour ceux qui te répondraient, quel que soit le forum d'ailleurs

Ceci posé, bienvenue chez nous...

     @+

      Yoshi
- Modérateur -

BAH MAMADOU SALIOU
20-10-2021 11:38:45

Bonjour à vous, je viens par ce message solliciter de votre haute bienveillance dans le but de travailler avec vous sur les DM.

yoshi
18-10-2021 08:16:18

Re,

Merci de tes remerciements, c'est sympa

La liste L s'appelle un itérable, c'est bien ça ?

Oui.

Je dois reconnaître que le

def Image(L=[]):

de Mai2900 m'a un peu surpris.
Je n'ai pas l'habitude de programmer comme ça.

@+

Paco del Rey
18-10-2021 07:41:30

Merci yoshi.

J'ai des habitudes d'autres langages de programmation, ce qui fait que je parle le langage python avec un fort accent.

La liste L s'appelle un itérable, c'est bien ça ?

Paco.

yoshi
17-10-2021 20:20:41

Bonsoir,

Discussion déplacée dans le sous-forum programmation.
Tu proposes :

def Image(L=[]):
       for i in L:
             l=f(i)
       L.append(l)
       return L
 

L est la liste des paramètres, pourquoi veux-tu stocker les images dans cette même liste ?
Stocke-les dans une autre liste déclarée au début de ta fonction.

Ensuite si tu écris L.append(l) à la sortie de la boucle, c'est normal que tu n'aies que la dernière image :il n'y a plus que le dernier calcul en mémoire.
Pour stocker toutes images, il faut le faire dans la boucle, pas à l'extérieur. !

Je présume que ta fonction f existe...
Tu ne la donnes pas...
Pour le besoin, en voilà une minimaliste :

def f(x):
    return x**3
 

J'ai un code qui marche, mais essaie d'abord de corriger le tien...

Puisque c'est pour un DM, j'ai supprimé mon code.
Alors, il va te falloir te montrer réactif et on arrivera très vite au bout (mais pas ce soir, mon lit m'attend)

def f(x):
    return x**3

def Images_de_L(L):
    Images=[]
    for nb in L:
        ...    
        ...
    return Images

print (Images_de_L([-2,0,3]))
 

Résultat affiché :
[-8, 0, 27]

N-B : la fonction f n'est pas indispensable : à la place de l=f(i), on peut simplement écrire : l=i**3
@+

[EDIT] Grillé par Paco...
Je vous offre une fonction f appelée fonction anonyme (encore désignée sous le vocable de fonction lambda) :

f=lambda x:x**3
 

Et j'appelle f(-3) qui me renvoie -27

Paco a écrit :

  for i in range(len(L)):

Tu prends L[ i ], tu l'élèves au cube,

Pourquoi lui refuses-tu ?
for i in L:
     l=f(i)
Cette syntaxe qui lit tous les éléments de L un par un est parfaitement correcte et permet de s'affranchir de la connaissance de la longueur de L.
Il est clair que les habitudes nous poussent à considérer i, j, k comme des indices de boucles, donc plutôt que i, il pouvait choisir antecedent... ;-)
et écrire :
for antecedent in L:
L, par contre, n'était donc pas à choisir pour le stockage parce qu'avec L comme liste de stockage, à chaque nombre lu on ajoutait son cube et on entrait dans une boucle infinie...

Paco del Rey
17-10-2021 20:03:00

Oh la la! La bouillie !

D'abord la longueur de la boucle c'est
len(L)

Donc
   for i in range(len(L)):

Tu prends L[ i ], tu l'élèves au cube, puis tu l'appends à la liste que tu t'apprêtes à retourner.
Tu l'appelles comme tu veux, cette liste, mais surtout pas L,

Je te laisse corriger.

Paco.

mai2900
17-10-2021 18:35:25

Bonsoir,
J'ai presque réussi mon programme mais il ne me renvoie que la dernière valeur. Comment résoudre ce problème.
Ma fonction Image ressemble à :

def Image(L=[]):
       for i in L:
             l=f(i)
        L.append(l)
        return L
Merci d'avance de votre réponse,

Mai2900

mai2900
16-10-2021 18:13:09

Bonsoir,
Merci pour votre réponse.
Je pense avoir compris, je vais essayer faire l'exercice et vous redemanderai si besoin.
Mai2900

Paco del Rey
16-10-2021 17:59:10

Bonsoir Mai.

La première fonction, F, prend un nombre, disons 2 et retourne le cube de 2 : F(2) = 8.

La deuxième, images, prend une liste, disons [-2,0,3] et retourne la liste des cubes : [-8,0,27].

Paco.

mai2900
16-10-2021 17:07:31

Bonjour,
Je n'arrive pas discerner les deux fonction à écrire, ni comment les relier.
Merci d'avance de votre réponse.

Trustody
16-10-2021 16:47:14

Bonjour,

Qu'est ce que tu ne comprends pas exactement ? Tu ne sais pas ce qu'entend ton professeur par "fonction en Python" ?

En attendant ta réponse,

Trustody

mai2900
16-10-2021 16:29:42

Bonjour,

je suis en 1ère et j'ai un DM pour vendredi prochain,  sur l'écriture d'algorithmes en langage Pyton.

Je ne sais pas comment il faut comprendre la question suivante:

On considère f la fonction cube ; la fonction F écrite en langage Phyton a pour paramètre un nombre x et renvoie pour résultat l'image de x par la fonction f. La fonction images a pour paramètres une liste L de nombres ; elle renvoie pour résultat la liste des images des nombre de L par la fonction f. Ecrire ces deux fonctions en langae Python.

Pouvez vous m'aider à comprendre et à traduire en langage Python?
merci d'avance pour votre support,

Pied de page des forums