chouette vidéo, je suis plutôt un utilisateur des map, filter et reduce, donc je suis que partiellement d'accord avec ton tips à ce sujet. Je pense que pour la lisibilité ça dépend vraiment du backgroud des gens qui lisent ton code. Au final c'est un peu un tradeoff à trouver entre la lisibilité et la fonctionnalité du code, vu que niveau performances, il n'y a pas (a ma connaissance) de différences notables. Un autre tips si tu refais une vidéo du genre, c'est l'accès des clé d'un dictionnaire avec la method get plutôt que avec les crochets. les variables étant mutables en python essayer d'accéder à foo[''a'] retournera une KeyError si cette clé n'existe pas, alors que foo.get('a') retournera None, ou une valeur par défaut prédéfinit.
@Frex-is9 ай бұрын
Tu peux continuer à utilisé des map, je dirais même que je te le recommande car un map va être lazy contrairement à une list comprehension cela va t'éviter potentiellement des problèmes de mémoire. En terme de performance les 2 sont equivalent +/- quelque ms de différence ce qui est négligeable et le trade off en terme de lisibilité est inexistant selon moi
@herogpi19 ай бұрын
Je ne suis pas d'accord d'utiliser le "get". C'est la même problematique du code ci-dessous. C'est le travail du programmateur de checker si le dictionnaire a la clé avant de la demander si on n'est pas sûr qu'il en a. Si on utilise le get, alors il faut tester après le get si la valeur retourné est None. C'est-à-dire : C'est mieux faire le check avant ou après ? Pour moi, on fait le check avant ``` def func1(foo): try: do_stuff(foo["a"]) except KeyError: do_other_stuff(foo) def func2(foo): if "a" in foo: do_stuff(foo["a"]) else: do_other_stuff(foo) ```
@B1710-x5c9 ай бұрын
@@Frex-is ah mais je vais pas me gêner d'utiliser des map, l'évaluation lazy en est une des raison. mais pour la lisibilité encore une fois ça dépend du context. En prod, oui biensûrs.
@eknight13649 ай бұрын
Bonjour, j'aimerais apporter quelques précisions: - zip ne nécessite pas que les itérateurs aient la même taille, il s'arrête en même temps que le plus petit d'entre eux - map et filter sont aussi des générateurs tels que présentés et recommandés dans le dernier tip. Le commentaire sur leur syntaxe est dicutable, leur lourdeur vient surtout des lambda.
@R.e.n.e9 ай бұрын
En général si tu veux faire un code plus lisible du replace la lambda par une fonction nommé.
@herogpi19 ай бұрын
L'utilisation du map, filter, reduce est plutôt liée au à la programmation fonctionelle, c'est un paradigme et dépend énormement du problème qu'on trait. Pour les habitués à la programmation structurée, utiliser des "for" est beaucoup plus lisible qu'utiliser des maps ou même des comprehesion des listes, bien que pour qui utilise la programmation fonctionelle, utiliser des maps est plus lisible.
@serge_amon5 ай бұрын
Salut. Je suis débutant en Python. J'ai tout appris mais jamais réalisé de projets. Je sais pas lire la documentation et m'en servir ou encore me mettre à jour. As tu une as-tu ?
@hideyuki_.97399 ай бұрын
assez instructif merci !
@jettoheller85499 ай бұрын
Bonjour, je regarde tes vidéos sur mobile et le code n'est pas lisible. Je trouve que ton image prend trop de place.
@MayasNova9 ай бұрын
Hello, merci pour le retour 🙏 je vais essayer de zoomer plus la prochaine fois 👍
@nelsonperrin58009 ай бұрын
Le code est parfaitement lisible sur mon ecran (smartphone pas chère). Je te conseille de pivoter ton smartphone de 90°. Si c'est toujours illisible c'est que tu regarde la vidéo en 360 ou 480, et à cette qualité même sur un écran 4k de 19' tu pourras pas lire. Sinon je suis dac, une tête au format vignette et un léger zoom serait sympas.
@jettoheller85499 ай бұрын
@@nelsonperrin5800 si tu veux me donner ton écran et tes yeux, alors je devrais y arriver aussi 😀
@longuemire7489 ай бұрын
Merci pour cette video. Excuse-moi, mais tu aurais des conseils quand on aborde le python comme un langage de script comme sur blender par exemple?
@nelsonbeneche23729 ай бұрын
merci pour cette videos
@HermannDouanla7 ай бұрын
Merci
@symphognoboa82249 ай бұрын
Bravo !
@vfb62659 ай бұрын
+ le match case depuis la 3.10 :)
@MayasNova9 ай бұрын
Je n'ai pas encore pris l'habitude de l'utiliser car la majorité des clients avec qui je travaille sont encore en 3.8 😄
@daubert48928 ай бұрын
Je ne suis vraiment pas d'accord avec beaucoup de ces tips. Ce n'est bien sûr que mon humble avis que je ne veux imposer à personne. Je trouve par exemple que les compréhensions de listes sont assez illisibles, c'est beaucoup plus clair d'utiliser une syntaxe très basique avec une boucle et plusieurs lignes. Pareil pour les concaténations de chaines de caractères, mes yeux lisent beaucoup plus facilement des + qui séparent clairement les éléments qu'on veut coller ensemble plutôt que les accolades logées au sein du texte entre guillemets. Et pour tout ce qui concerne les classes et les objets, de toute façon je déteste le paradigme orienté objet, mais quelle horreur, cette logique, cette syntaxe... Vive la programmation procédurale ! Bref, il n'y a vraiment qu'avec les tips 2 et 5 avec lesquels je suis d'accord en fait.
@Wulfhartus9 ай бұрын
Plutôt utile même pour l'agreg de maths !
@Αλέξανδρος569 ай бұрын
Il y a de la programmation pour l'agreg de maths ? Et c'est pas plutot Ruby qui est utilisé généralement en maths ?
@Wulfhartus9 ай бұрын
@@Αλέξανδρος56 MathLab est très couramment utilisé par les chercheurs mais Python avec SageMath est très facile et puissant pour faire du calcul formel. On fait du python en agreg de maths, et selon ton option, tu fais en plus du SageMath.
@Wulfhartus9 ай бұрын
@@Αλέξανδρος56 @user-xq2we4ke5t MathLab est très couramment utilisé par les chercheurs mais Python avec SageMath est très facile et puissant pour faire du calcul formel. On fait du python en agreg de maths, et selon ton option, tu fais en plus du SageMath. Dans cette vidéo, j'ai noté l'utilité des classes (qui serviront à implémenter des arbres en récursif), du enumerate, la puissance de la compréhension de liste, et le deepcopy. Ces commandes peuvent servir dans n'importe quel algo de maths.
@antocreadev9 ай бұрын
@@Αλέξανδρος56non c’est python.
@MrDarkislider9 ай бұрын
J'aime beaucoup ces tips mais je n'ai pas du tout compris le 8eme car pour moi il n'y a que le nom de l'attribut qui change en étant précédé par un underscore
@MayasNova9 ай бұрын
En fait en mettant un underscore au début ça permet de dire que c'est un attribut privé (en quelques sortes). Du coup on utilise pas directement l'attribut quand on fait "good_person.name"
@adnaneguettaf54619 ай бұрын
Ayant parler de dataclass, j'aurais trouvé utile de parler de pydantic pour aller un peu plus loin dans la validation par exemple
@MayasNova9 ай бұрын
Salut ! Je me suis limité au python natif dans cette vidéo. Mais oui effectivement pour pydantic c'est très intéressant et ça mérite une vidéo complète sur le sujet je pense 😁
@eddychristiantabouguiadjoko9 ай бұрын
j'aime bien @Mayas 😊
@MrHabib578 ай бұрын
vidéo intéressante mais trop rapide pour un débutant
@tigidou33449 ай бұрын
11 - Mettre du typage où ce n'est pas utile.
@antocreadev9 ай бұрын
Salut, la video est super, merci de contribuer à la communauté française !! Cependant, le code est trop petit il n’est pas lisible
@MayasNova9 ай бұрын
Hello, merci pour le retour 🙏 J'ai vu un autre commentaire passer qui disait la même chose aussi. Je vais essayer de zoomer plus pour les prochaines 👍