Controle de NSI

Calixte

Sage
Auteur du topic
1 Mar 2024
689
1,858
Je vous en supplie les gars aidez moi à trouver un moyen de pas foirer mon devoir sur les classes TT
on code en Python, en ce moment on travaille sur les classes, les attributs et tout le bordel et le sevoir sera aussi sur ce qu'on à fait en première, le problème c'est que je sais pas comment réviser :notlikethis:
 

Gno

Sage
9 Nov 2022
601
786
Le premier projet à faire au niveau POO, c'est RPG dans le terminal (comme l'a dit Pingouin). Même si c'est "seulement" modéliser et créer les classes pour représenter le joueur (voir même une classe Joueur, avec une classe guerrier ou mage qui hérite de la classe joueur), et aussi les ennemis (même logique, une classe ennemi, avec une classe gobelin (par exemple) qui hérite de la classe ennemi).

C'est de loin la façon la plus ludique de bosser la POO, contrairement aux exercices types des cours, où c'est moins amusant
 

Calixte

Sage
Auteur du topic
1 Mar 2024
689
1,858
Merci les gars je vais essayer de faire ça demain pour m'entrainer
en ce moment le projet c'est une BATAILLE je suis au bout de ma vie faut trop réfléchir et être concentré et j'ai un TDAH c'est terrible ;-;
 

Gno

Sage
9 Nov 2022
601
786
Mais tu vas y arriver, on croit en toi (du moins c'est le cas pour moi, je ne sais pas du côté de Pingouin)
 
  • Merci
Réactions: 1 membre

☆Jade

Membre supprimé
4 Juin 2024
408
825
Je vous en supplie les gars aidez moi à trouver un moyen de pas foirer mon devoir sur les classes TT
on code en Python, en ce moment on travaille sur les classes, les attributs et tout le bordel et le sevoir sera aussi sur ce qu'on à fait en première, le problème c'est que je sais pas comment réviser :notlikethis:
Alors, pour réviser les classes en Python, le mieux c'est de t'y prendre en plusieurs étapes pour bien tout capter et être à l'aise avant ton devoir ^-^

Revois les bases des classes:

- Une classe, c'est comme un plan pour créer des objets. Dedans, tu définis des attributs (caractéristiques) et des méthodes (actions).

- Regarde comment créer une classe, avec un constructeur (__init__) et des attributs d'instance.

Exercices pratiques :

- Écris plein de classes simples pour t'entraîner ! Exemple : une classe pour gérer des élèves avec des notes, une pour des personnages de jeu vidéo, etc. 🧑‍💻

- Essaie de modifier les attributs ou d'ajouter des méthodes pour t'entraîner à manipuler les classes.

Revoir la POO de première :

- Pense à des concepts comme l'héritage (quand une classe peut hériter d'une autre), l'encapsulation (rendre des attributs privés avec un __) ou le polymorphisme.

Regarde des vidéos ou des tutos :

- Les tutos sur YouTube t'expliquent souvent avec des exemples visuels. Tu peux aussi aller voir des vidéos de gars qui codent en direct pour voir comment ils réfléchissent et résolvent des problèmes ^^
(https://m.youtube.com/@Docstring par exemple)

Teste ton code souvent :

- Plus tu pratiques, plus tu mémorises et comprends les trucs !

Organise un plan pour ton devoir :

- Note les trucs essentiels que tu dois savoir (création de classes, constructeurs, méthodes etc) et fais une fiche récap !


P.S. Hum j'avoue, j'ai fait quelques recherches qd même hein j'ai absolument pas trouvé tout ça tt seule 😌😏 mais en vrai c cool ça m'apprend des choses aussi !
 
Dernière édition:

Gno

Sage
9 Nov 2022
601
786
Ca sent ChatGPT...
Messages fusionnés :

Mais pour le coup je vais pas pouvoir aider, je connais pas la POO en Python (la dernière fois que j'en ai fait c'était y'a 4 ans, et j'avais rien suivi à l'époque), mais je connais la logique générale, donc si jamais tu as besoin d'aide, n'hésite pas !
 
  • Like
Réactions: 1 membre

Calixte

Sage
Auteur du topic
1 Mar 2024
689
1,858
Revoir la POO de première :

- Pense à des concepts comme l'héritage (quand une classe peut hériter d'une autre), l'encapsulation (rendre des attributs privés avec un __) ou le polymorphisme.
on a pas fait de POO l'année dernière c'est po au programme ;-;
Teste ton code souvent :

- Plus tu pratiques, plus tu mémorises et comprends les trucs !
je teste mon code h24 c'est pour ça que je suis terrifié à l'idée de l'épreuve papier au bac :monkas:
 

Gno

Sage
9 Nov 2022
601
786
je teste mon code h24 c'est pour ça que je suis terrifié à l'idée de l'épreuve papier au bac :monkas:
Je te rassure (normalement) les profs sont censé être indulgent quand tu es sur papier, pour la simple et bonne raison que tu n'as pas d'IDE et de compilateur, donc ils sont censé être assez laxiste sur ça
 

Calixte

Sage
Auteur du topic
1 Mar 2024
689
1,858
Je te rassure (normalement) les profs sont censé être indulgent quand tu es sur papier, pour la simple et bonne raison que tu n'as pas d'IDE et de compilateur, donc ils sont censé être assez laxiste sur ça
j'ai trop peur parce que j'ai une facheuse tendance à utiliser beaucoup de boucles et mes boucles sont souvent infinies et je mets ma vie à trouver ce qui va pas (je mets ma vie à me dire qu'il faudrait que je lance le mode debogage aussi mais shh x))
 

Gno

Sage
9 Nov 2022
601
786
j'ai trop peur parce que j'ai une facheuse tendance à utiliser beaucoup de boucles et mes boucles sont souvent infinies et je mets ma vie à trouver ce qui va pas (je mets ma vie à me dire qu'il faudrait que je lance le mode debogage aussi mais shh x))
Avant de faire une boucle, il faut penser à sa condition de fin. Par exemple quand tu itères dans un tableau, obligatoirement tu auras un i<taille, après tu peux ajouter une seconde condition, mais la plus importante c'est "le cas principal où ça doit s'arrêter". Un autre conseil, c'est de ne pas utiliser de while si tu n'es pas obligé. Les boucles TantQue sont incroyables certes, mais c'est souvent une plaie.

Je sais qu'on peut break une boucle aussi, vraiment dans le pire des cas, mais c'est quelque chose de mal vu, donc il faut éviter.

Après, je dis ça un peu au pif, mais mieux vaut mettre une condition d'arrêt foireuse, plutôt que faire une boucle infini. Tu peux aussi tenter, si t'es vraiment perdu et que tu sais pas comment continuer ton script, d'écrire ce que tu veux faire / la logique que tu voulais faire, ça pourrait peut-être te faire gagner des points (tout est bon pour gratter comme on dit)
 
  • Merci
Réactions: 1 membre

Try

Initié(e)
5 Fev 2022
204
222
Je suis programmeur alors si t'as des questions hésite pas. Ou si tu veux que je regarde ce que tu fais pour avoir un avis
 
  • Merci
Réactions: 1 membre

Pingouin

Modérâleur
Membre du personnel
13 Déc 2020
2,488
2,208
Avant de faire une boucle, il faut penser à sa condition de fin. Par exemple quand tu itères dans un tableau, obligatoirement tu auras un i<taille, après tu peux ajouter une seconde condition, mais la plus importante c'est "le cas principal où ça doit s'arrêter". Un autre conseil, c'est de ne pas utiliser de while si tu n'es pas obligé. Les boucles TantQue sont incroyables certes, mais c'est souvent une plaie.

Je sais qu'on peut break une boucle aussi, vraiment dans le pire des cas, mais c'est quelque chose de mal vu, donc il faut éviter.

Après, je dis ça un peu au pif, mais mieux vaut mettre une condition d'arrêt foireuse, plutôt que faire une boucle infini. Tu peux aussi tenter, si t'es vraiment perdu et que tu sais pas comment continuer ton script, d'écrire ce que tu veux faire / la logique que tu voulais faire, ça pourrait peut-être te faire gagner des points (tout est bon pour gratter comme on dit)
Je rebondis sur mon gnocchi.
Quand tu fais une boucle, faut réfléchir au besoin.
Si tu sais exactement quel nombre de tour faire (par exemple 10), ou bien pour parcourir des éléments d'une liste par exemple, c'est une boucle for.
Sinon, c'est une boucle while. Le cas par défaut, c'est une boucle while, puisque la boucle for n'est qu'une boucle while déguisée. Et quand tu fais cette boucle, la première chose à laquelle penser n'est pas son contenu, mais sa condition d'arrêt (par exemple multiplier une variable jusqu'à ce qu'elle soit supérieure à une certaine valeur). Avec de l'expérience, on repère facilement les boucles infinies, souvent parce que la condition d'arrêt n'est jamais atteinte parce qu'on modifie pas correctement une variable...
Après, python est vraiment cool sur les boucles, et permet notamment d'itérer facilement sur plein de choses.


Et si jamais j'apprends un jour que tu as utilisé un break dans ta boucle, je viendrai chez toi la nuit et je t'étoufferai avec ton oreiller.
 
  • Like
  • Triste
Réactions: 1 membres

Gno

Sage
9 Nov 2022
601
786
Je rebondis sur mon pingouin

puisque la boucle for n'est qu'une boucle while déguisée
Et oui, tout n'est que mascarade, car :

Python:
for i=0 in range(0,10) :
   print(i)

équivaut à

Python:
i = 0
while i<10 :
  print(i)
  i = i+1

Mais oui, dans ce cas ci, le i est notre variable d'arrêt, et elle est importante car c'est sur elle qu'on fait la condition pour arrêter la boucle. Et dans chaque boucle, y'a une variable d'arrêt, qui est modifiée au fil des itérations dans la boucle

Post scriptum : d'ailleurs la boucle while, même pour faire ce traitement (alors qu'on peut le faire en 2 fois moins de lignes avec une boucle for est intéressante, car on se rend compte du traitement qui est fait sur i, là où avec la boucle for, c'est un peu rendu invisible
 
  • Lune
Réactions: 1 membre

Try

Initié(e)
5 Fev 2022
204
222
Je rebondis sur mon pingouin


Et oui, tout n'est que mascarade, car :

Python:
for i=0 in range(0,10) :
   print(i)

équivaut à

Python:
i = 0
while i<10 :
  print(i)
  i = i+1

Mais oui, dans ce cas ci, le i est notre variable d'arrêt, et elle est importante car c'est sur elle qu'on fait la condition pour arrêter la boucle. Et dans chaque boucle, y'a une variable d'arrêt, qui est modifiée au fil des itérations dans la boucle

Post scriptum : d'ailleurs la boucle while, même pour faire ce traitement (alors qu'on peut le faire en 2 fois moins de lignes avec une boucle for est intéressante, car on se rend compte du traitement qui est fait sur i, là où avec la boucle for, c'est un peu rendu invisible
Heu par contre "for i=0 in range(0, 10)" ça n'as pas de sens. C'est pas i=0. C'est i tout court. Range s'occupe déjà de donner une valeur 0 à la 1ere iterations
Messages fusionnés :

d'ailleurs la boucle while, même pour faire ce traitement (alors qu'on peut le faire en 2 fois moins de lignes avec une boucle for est intéressante, car on se rend compte du traitement qui est fait sur i, là où avec la boucle for, c'est un peu rendu invisible
On appelle ça du sucre syntaxique. À part pour des raisons pédagogique on préfère la version courte
 

Gno

Sage
9 Nov 2022
601
786
Heu par contre "for i=0 in range(0, 10)" ça n'as pas de sens. C'est pas i=0. C'est i tout court. Range s'occupe déjà de donner une valeur 0 à la 1ere iterations
Messages fusionnés :


On appelle ça du sucre syntaxique. À part pour des raisons pédagogique on préfère la version courte
Oui j'ai bugué, j'ai jamais utilisé de for i in range en Python (du moins pas sur le dernier projet que j'avais en Python), j'ai toujours utilisé des foreach / for elmt in list, et j'avais que du Java et du C en tête, c'est pour ça que j'ai initialisé le i à 0
Messages fusionnés :

Merci @Try ...
1726869487810.png
 
  • Angry
  • Like
  • Haha
Réactions: 2 membres

Try

Initié(e)
5 Fev 2022
204
222
Pour le boulot j'utilise de plus en plus de python et j'aime trop ce langage. C'est tellement pratique à écrire. C'est un langage que je recommande pour les débutants et les avancées mais pas les niveaux intermédiaire.

Les débutants peuvent s'initier à la programmation et sa façon de penser facilement. Les avancées peuvent écrire hyper rapidement pleins d'outils pratiques. Par contre ça n'apprends vraiment pas les bonnes manières. C'est un langage pour bricoler dans son garage des scripts. Ça manque de performance et de rigueur. Et pour cette raison il faut vite l'abandonner pour un langage plus haut niveau si on veut progresser
 
  • Like
Réactions: 1 membres

Gno

Sage
9 Nov 2022
601
786
Pour le boulot j'utilise de plus en plus de python et j'aime trop ce langage. C'est tellement pratique à écrire. C'est un langage que je recommande pour les débutants et les avancées mais pas les niveaux intermédiaire.
Ouep, très d'accord avec toi, pour les niveaux intermédiaires il faut des langages un peu plus cracra, genre Java puis du C et du C++, ça permet vraiment de se rendre compte de l'impact qu'on a sur la mémoire, les coûts des opérations, etc. Ensuite quand on est un peu plus à jour avec toutes ces notions, on peut retourner sur Python et faire du code un peu plus optimisé

C'est un langage pour bricoler dans son garage des scripts. Ça manque de performance et de rigueur. Et pour cette raison il faut vite l'abandonner pour un langage plus haut niveau si on veut progresser
C'est de la bricole, oui, mais bien utilisé c'est quand même très puissant. Et le gros avantage, c'est que ce soit très populaire, et donc qu'il y ait une pléthore de modules divers et variés. Donc finalement, il est très complet, mais pas précis pour une tâche (hormis le traitement de data, mais il y a largement mieux, surtout si on a des millions de valeurs à traiter)
 
  • Like
Réactions: 1 membre