Programme python
chuxxxflu
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, je galère depuis 1 semaine sur cet exercice que je comprends toujours pas. pourriez-vous s'il vous plait me rendre service en me guidant.
On supposera ici que les éléments des listes utilisées sont tous de même type.
Soit le code suivant :
def so(liste) :
s=0
for e in liste :
for i in e :
if i%2==0 :
s=s+i
li=eval(input()) #eval permet de transformer la chaîne de caractères saisie par sa valeur (une liste par exemple), voir avant-propos de la séance 6 sur PIXAL
print(so(li))
Répondez aux questions suivantes :
Pour que le programme fonctionne :
a) Quel devrait être le type de la variable i ? Expliquez comment on peut le déduire.
b) Quel devrait être le type de la variable e ? Expliquez comment on peut le déduire.
c) Quel devrait être le type de la variable liste ? Expliquez comment on peut le déduire.
d) Quel devrait être le type de la variable li ? Expliquez comment on peut le déduire.
e) Quel devrait être le type de la variable s ? Expliquez comment on peut le déduire.
f) Expliquez en une ou deux phrases ce que la fonction devrait faire en expliquant le rôle de la variable s . Que doit-on
ajouter pour obtenir le résultat souhaité ?
g) Donnez un exemple représentatif de valeurs pour li et indiquez quelles seraient les valeurs successives prises par les
variables e, i et s.
h) En l'état actuel, qu'affiche le programme complet ? Après modification et sur votre exemple, qu'affiche t'il ?
je connais les variables i, e, liste, et li sont de quel type mais je ne sais pas si ça va changer pour que le programme fonctionne.
pour la question f je crois que la fonction faut qu'elle insère une liste mais je suis pas sûre.
veuillez s'il vous plait me donner juste un coup de main parce que je suis complètement perdue.
merci d'avance :)
On supposera ici que les éléments des listes utilisées sont tous de même type.
Soit le code suivant :
def so(liste) :
s=0
for e in liste :
for i in e :
if i%2==0 :
s=s+i
li=eval(input()) #eval permet de transformer la chaîne de caractères saisie par sa valeur (une liste par exemple), voir avant-propos de la séance 6 sur PIXAL
print(so(li))
Répondez aux questions suivantes :
Pour que le programme fonctionne :
a) Quel devrait être le type de la variable i ? Expliquez comment on peut le déduire.
b) Quel devrait être le type de la variable e ? Expliquez comment on peut le déduire.
c) Quel devrait être le type de la variable liste ? Expliquez comment on peut le déduire.
d) Quel devrait être le type de la variable li ? Expliquez comment on peut le déduire.
e) Quel devrait être le type de la variable s ? Expliquez comment on peut le déduire.
f) Expliquez en une ou deux phrases ce que la fonction devrait faire en expliquant le rôle de la variable s . Que doit-on
ajouter pour obtenir le résultat souhaité ?
g) Donnez un exemple représentatif de valeurs pour li et indiquez quelles seraient les valeurs successives prises par les
variables e, i et s.
h) En l'état actuel, qu'affiche le programme complet ? Après modification et sur votre exemple, qu'affiche t'il ?
je connais les variables i, e, liste, et li sont de quel type mais je ne sais pas si ça va changer pour que le programme fonctionne.
pour la question f je crois que la fonction faut qu'elle insère une liste mais je suis pas sûre.
veuillez s'il vous plait me donner juste un coup de main parce que je suis complètement perdue.
merci d'avance :)
23 réponses
- 1
- 2
Suivant
-
Bonjour
En Python, l’indentation est primordiale, or par défaut le site ne la conserve pas.
Pour la conserver il faut utiliser les balises de code. Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
On pourra commencer à essayer de t’aider quand tu auras reposté correctement ton code.
-
def so(liste) : s=0 for e in liste : for i in e : if i%2==0 : s=s+i li=eval(input()) #eval permet de transformer la chaîne de caractères saisie par sa valeur (une liste par exemple), voir avant-propos de la séance 6 sur PIXAL print(so(li))
je crois que le code est écrit correctement maintenant !
(merci pour le tuto) -
je connais les variables i, e, liste, et li sont de quel type mais je ne sais pas si ça va changer pour que le programme fonctionne.
Savoir quels sont les types de ces variables est nécessaire pour répondre àExpliquez en une ou deux phrases ce que la fonction devrait faire en expliquant le rôle de la variable s
Parce que c’est grâce à cela que tu peux savoir ce qu’il faut mettre en entrée.
Si ce qui est en entrée n’est pas ce qui est attendu ton programme ne fonctionnera pas.
Ce n’est pas suffisant pour répondre àQue doit-on
ajouter pour obtenir le résultat souhaité ?
Mais si tu rentres n’importe quoi, même si tu as trouvé ce qu’il faut ajouter tu n’auras pas le résultat attendu
-
Il faut bien ajouter un return.
Mais ni e ni i est un booléen.
Ça fait quoi çai%2==0
?
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Oui i est un entier, mais non, il ne faut pas ajouter un int().
Puisque i est un entier qu’est ce que peut être e?
-
-
Ha ça peut-être.
Cependant je n'ai pas trouvé une façon de représenter un intervalle de façon à ce que eval() l'accepte. Cela dit, je ne code pas en Python et avant ta question je ne connaissais pas eval().
Il est donc possible qu'un intervalle puisse lui être donné en entrée. Mais pas "1 to 4".
Si dans le cours cité, on t'explique comment passer un intervalle dans eval(), alors oui e peut être un intervalle.
Si tu n'as pas cette information, alors un faut trouver une autre structure de donnée qui sera acceptée par eval.
-
-
-
pour li j’en ai aucune idée, tout ce que je sais c’est que eval c’est une evaluation dynamique de la fonction
-
li est passé en paramètre à la fonction so. Donc li et liste sont « la même chose »
A partir de e tu peux déduire liste et donc li
-
-
Je ne pense pas que ce soit pertinent pour cet exercice de savoir si c’est immuable ou mutable car le code n’essaye pas de modifier liste
Concentre toi sur cette lignefor e in liste :
Tu sais que e est une liste (une liste d’entiers précisément) que peut donc être le le type de liste ?
-
-
Non si liste était une liste d’entiers alors e serait un entier.
Qu’est ce qui pourrait avoir comme élément unitaire une liste d’entiers ?
-
-
Une liste de listes d’entiers.
Sachant cela, peux tu me donner la réponse à la question f?
-
le programme doit définir une fonction so(liste), on initialise s à 0. il doit rajouter i (un entier) à s si i est divisible par 2 et si e est dans la liste des listes des entiers. il doit afficher le résultat s ( il faut ajouter le return) et apres eval va permettre de transformer la chaine de caractère par la valeur et enfin le print va permettre d’afficher le résultat.
-
Ok, je ne l’aurais pas formulé comme cela, mais c’est l’idée.
Maintenant sais tu répondre aux autres questions?
- 1
- 2
Suivant