Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 16-10-2021 17:29:42
- mai2900
- Invité
Dm de maths
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,
#3 16-10-2021 18:07:31
- mai2900
- Invité
Re : Dm de maths
Bonjour,
Je n'arrive pas discerner les deux fonction à écrire, ni comment les relier.
Merci d'avance de votre réponse.
#4 16-10-2021 18:59:10
- Paco del Rey
- Invité
Re : Dm de maths
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.
#5 16-10-2021 19:13:09
- mai2900
- Invité
Re : Dm de maths
Bonsoir,
Merci pour votre réponse.
Je pense avoir compris, je vais essayer faire l'exercice et vous redemanderai si besoin.
Mai2900
#6 17-10-2021 19:35:25
- mai2900
- Invité
Re : Dm de maths
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
#7 17-10-2021 21:03:00
- Paco del Rey
- Invité
Re : Dm de maths
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.
#8 17-10-2021 21:20:41
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 989
Re : Dm de maths
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
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
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...
Dernière modification par yoshi (17-10-2021 21:36:18)
Arx Tarpeia Capitoli proxima...
Hors ligne
#9 18-10-2021 08:41:30
- Paco del Rey
- Invité
Re : Dm de maths
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.
#10 18-10-2021 09:16:18
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 989
Re : Dm de maths
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
de Mai2900 m'a un peu surpris.
Je n'ai pas l'habitude de programmer comme ça.
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#11 20-10-2021 12:38:45
- BAH MAMADOU SALIOU
- Invité
Re : Dm de maths
Bonjour à vous, je viens par ce message solliciter de votre haute bienveillance dans le but de travailler avec vous sur les DM.
#12 20-10-2021 13:07:35
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 989
Re : Dm de maths
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 -
Arx Tarpeia Capitoli proxima...
Hors ligne
#13 28-10-2021 21:13:26
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 989
Re : Dm de maths
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]
Dernière modification par yoshi (01-11-2021 15:40:16)
Arx Tarpeia Capitoli proxima...
Hors ligne
Pages : 1