16
Sebastien Hoarau
Last seen 3 years ago
Member for 9 years, 7 months, 15 days
Class L1ieea
Bien. Vous pouvez utilisez f.split(',') et le résultat est directement une
liste, pas la peine de parcourir pour remettre les mots dans une liste.
A la fin vous pouvez aussi :
if len(...):
result = result[:-1]
pas besoin de else et à la fin vous faites
return result
More
Oh la mauvaise modélisation, on peut faire un code moins fastidieux à lire
:)
More
attention à ne pas faire d'instruction inutile. Ici resultat *= 1 est
inutile. cela signifie que votre test est mal posé. Au lieu de faire if
nbr == 0 il faut tester if nbr != 0
More
Bien. Pensez à utiliser l'appel des méthodes comme ça : obj.methode(...) plutôt que class.methode(obj,...)
Ainsi c.isupper() plutôt
More
C'est bien : utilisation correcte du for, du if et des chaines de caractères avec concaténation. Votre liste de majuscules a quand même du être un peu fastidieuse à écrire. Vous auriez pu utiliser une chaine de caractères : 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' déjà un peu moins longue à écrire. Mais mieux e
More
Très bien. Ce programme n'est vraiment pas facile quand on n'utilise aucune
fonction prédéfinie de python. Essayez de découper votre code en petites
fonctions pour en augmenter la lisibilité notamment. Mais c'est vraiment du
bon boulot d'avoir résolu cela.
More
Bon a priori vous êtes plus avancé que la moyenne. Pas de souci. Attention
à ne pas compliquer votre code. Ici utiliser une lambda expression pour se
servir d'une fonction prédéfinie c'est un peu comme prendre 1 clou, poser
un marteau dessus et prendre un 2e marteau pour taper sur le 1re :)
numb
More
Bravo pour ce 1er exercice mené à bien. Maintenant essayez de le simplifier un peu. Notamment vous pouvez vous passer des variables i1 et i2... ainsi que de b1 et b2 en construisant la solution directement dans resultat.
More
Oui. Bon celui là n'était pas vraiment à faire car nous n'avons pas vu et
je ne compte pas voir le mécanisme d'exception. J'estime qu'il y a déjà
bien à faire avec ce qu'on va voir et qui est plus essentiel.
More
Oui c'est bien vous utilisez à bon escient les fonctions de python (split,
isalpha etc.) qui facilite la résolution de cet exercice. Essayez de le
résoudre sans utiliser de telles fonctions et en créant des petites
fonctions plutôt qu'un seul programme principal monobloc
More
C'est bien, l'exercice est résolu. Par contre évitez d'utiliser 'pass'...
je n'en ai jamais parlé en cours : on peut s'en passer aisément. Essayez de
corriger votre version pour faire disparaître le 'pass'.
More
Très bien. Pensez à ne faire qu'une fois un calcul, en le stockant. Ici
vous faites deux fois int(i)... donc :
digit = int(i) ce serait une bonne chose.
More
Oui i == i.upper() si jamais i n'est pas une lettre ça sera toujours vrai.
En effet la version majuscule d'un signe de ponctuation c'est le signe
lui-même. C'est la fonction isupper() qui vous aurait servi ici. if
i.isupper() Sinon i in abc est ok aussi. On peut aussi se passer de
déclarer la (t
More
Bon c'est résolu donc c'est bien mais... une boucle for + gestion à part
des indices ce n'est pas optimal. Servez vous du for pour gérer les
indices. A quoi sert max ?
More
Oui mais pourquoi la boucle ? dans le if il suffit de faire :
return array[n]**n
More
Très bien. Puisque vous vous en sortez bien : comment améliorer ce code ? En effet dans cette version number%5 == 0 peut être fait 2 fois... comment faire pour qu'il ne soit fait qu'une seule fois ?
More
Très très bien. Typiquement un des exos pas tout à fait aussi élémentaire que ça. Profitez en pour faire de l'analyse descendante et définir une petite fonction. Refaites cet exo sans utiliser la fonction any.
More
Bien. Pour plus de cohérence et avoir un seul return dans votre fonction n'hésitez pas à remplacer le return 0 par pdt = 0 dès lors le pdt = sum * array... doit être placé dans le else (manque une indentation)
More