![]() |
[Python]Situer mon niveau. - Version imprimable +- N-PN White-Hat Project (https://dev.n-pn.fr/forum) +-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72) +--- Forum : Langages interprétés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=27) +--- Sujet : [Python]Situer mon niveau. (/showthread.php?tid=3917) Pages :
1
2
|
[Python]Situer mon niveau. - InforMods - 31-10-2016 Bonjour, j'ai pas mal avancé en Python et j'aimerais me lancer dans l'apprentissage d'un autre langage plus bas niveau (j'ai choisis le C++). Je ne sais pas si j'ai acquis un niveau acceptable en Python et que je peut m'autoriser à apprendre un autre langage ou alors je me suis totalement tromper et j'ai encore énormément de chose à apprendre en Python. Donc, je cherche quelques exercices pour évalué mon niveau. J'ai trouver un exercice : On a un plateau (un tableau contenant deux tableaux) qui contient des True ou des False, imaginez que les True sont des murs et les False sont des chemins, vous devez écrire une fonction chemin qui parcours le plateau en passant par les False. Ce n'est pas ce qui est vraiment énoncé dans l'exercice mais sa donne une idée. Voilà ce que j'ai rendu : Code PYTHON :
(il affiche les cordonnés par les-quels il (le script) passe). Je vous donne ça pour vous donnez une petite idée de mon niveau. Merci d'avance. RE: [Python]Situé mon niveau. - supersnail - 31-10-2016 Bonjour, Je me suis permis d'insérer ton code directement sur le forum (on a des balise [CODE=langage ], autant en profiter ![]() Ensuite, c'est assez difficile de juger sur si peu de code , mais de ce que je vois c'est assez propre, après remplacer ton Code PYTHON :
if h is 0: Code PYTHON :
h = 1 - h Après ça pourrait être amusant de faire ça pour une grille n x n si tu veux complexifier un peu le truc ![]() RE: [Python]Situé mon niveau. - b0fh - 31-10-2016 Salut, C'est impossible de juger ton niveau sur un exercice aussi court. Néanmoins: - le print au milieu d'une fonction, qui mélange l'algorithme de résolution du problème et l'affichage du résultat, indique possiblement un manque d'expérience dans l'écriture de code modulaire - Une meilleure simplification (désolé supersnail): h = 1 - h, son absence indique un manque d'habitude avec les algos low-level - if x is False: un programmeur expérimenté ecrit "if x" ou "if not x" - L'algorithme ne détecte pas les cas ou aucune solution n'existe RE: [Python]Situé mon niveau. - InforMods - 31-10-2016 (31-10-2016, 15h41)b0fh a écrit : Salut,Oui, dans un algorithme on ne fais pas de print et on renvoi uniquement des valeurs, c'est ça ? Merci de vos réponses (toi et supersnail). RE: [Python]Situé mon niveau. - supersnail - 31-10-2016 Disons qu'on préfère séparer le plus possible le traitement des données de l'affichage pour rendre la maintenance du code plus pratique, ce qui a donné des naissance à certains "design pattern", dont le plus connu est MVC. Ton programme pourrait par exemple renvoyer une liste de coordonnées pour ton chemin, qui pourront ensuite être affiché par un "print" ou autre moyen d'affichage de ton choix :]. Bref, le meilleur moyen pour progresser c'est encore de coder des trucs, et partager ce que t'as fait pour qu'on puisse t'aider à t'améliorer ![]() Par le passé, on avait aussi des défis programmation, et tu peux toujours t'amuser à essayer de faire le défi et poster ta solution et regarder celle des autres, et ça tombe bien, y'a d'autres pythonneux dans le coin :3. Sachant qu'il faut quelques années de pratique avant de pouvoir se proclamer "bon" en programmation :þ RE: [Python]Situé mon niveau. - gruik - 31-10-2016 salut, (31-10-2016, 15h30)InforMods a écrit : Je ne sais pas si j'ai acquis un niveau acceptable en Python et que je peut m'autoriser à apprendre un autre langage ou alors je me suis totalement tromper et j'ai encore énormément de chose à apprendre en Python. de mon point de vue et en bref :
l'idée derrière c'est de savoir se (re?)donner des objectifs, se rappeler pourquoi on code finalement, pourquoi on a appris la programmation et pourquoi on continue, dans quel but my 2 cents, RE: [Python]Situé mon niveau. - InforMods - 31-10-2016 (31-10-2016, 20h14)gruik a écrit : salut,Merci beaucoup de ta réponse, je ne voulais pas apprendre le C++ si j'ai encore beaucoup de lacunes en Python, je ne veut pas laisser tomber ce langage. Sinon, j'ai écrit un petit programme qui génère des nombres premier dans un fichier : Code PYTHON :
J'ai appliquer vos conseils, par exemple j'ai fais "if r" au lieu de "if r is True" et je ne sais pas si c'est plus propre mais j'ai mis des espaces avant les ":". Puis, je n'ai pas fais de "print" mais uniquement un "return". Voilà, si vous avez des trucs à dire sur ce petit code. RE: [Python]Situé mon niveau. - supersnail - 31-10-2016 D'un point de vue code j'ai pas grand-chose à redire, c'est propre (après tu pourrais faire un for i in range(...) plutôt qu'un while i incrémenté à la main :p). D'un point de vue algorithmique, tu pourrais optimiser légèrement en faisant un crible d'Ératosthène, et vu que tu veux générer une liste de nombre premiers, c'est l'occasion rêvée de s'initier aux générateurs et le mot-clé "yield" ![]() RE: [Python]Situé mon niveau. - Junky - 31-10-2016 Bonjour, Ou même faire de la récursivité. RE: [Python]Situé mon niveau. - InforMods - 31-10-2016 (31-10-2016, 22h27)supersnail a écrit : D'un point de vue code j'ai pas grand-chose à redire, c'est propre (après tu pourrais faire un for i in range(...) plutôt qu'un while i incrémenté à la main :p).Okay encore une fois, merci de ta réponse. Quand tu parle de générateur, c'est ça ? : Code PYTHON :
RE: [Python]Situé mon niveau. - supersnail - 31-10-2016 C'est exactement ça ![]() RE: [Python]Situé mon niveau. - InforMods - 31-10-2016 (31-10-2016, 22h57)supersnail a écrit : C'est exactement çaOkay donc, je vais me pencher un peu plus sur ça. RE: [Python]Situé mon niveau. - InforMods - 01-11-2016 J'ai écrie un programme contenant plusieurs algorithmes permettant de traiter les tableaux de proportionnalités : Code PYTHON :
Je pense que mon code est assez propre. RE: [Python]Situé mon niveau. - supersnail - 01-11-2016 On voit le fainéant qui veut déléguer ses devoirs de maths à sa machine :þ. Plus sérieusement j'ai toujours pas compris l'intérêt d'enseigner les tableaux de proportionalité, même plus de 10 ans après :') Sinon niveau code, dans corriger et completer tu peux précalculer le coefficient de proportionnalité au lieu de faire le calcul à chaque tour de boucle ![]() Je rejoins aussi ce que disait gruik, tu peux aussi écrire des programmes qui font des trucs utiles/résolvent un problème plus concret que simplement de l'exercice de style (par exemple j'avais écrit un truc pour saisir mes notes & calculer la moyenne quand j'avais à peu près ton âge, et je m'en suis jamais servi en fin de compte, et le code est vraiment affreux donc nan vous verrez pas :>). RE: [Python]Situé mon niveau. - InforMods - 01-11-2016 (01-11-2016, 11h37)supersnail a écrit : On voit le fainéant qui veut déléguer ses devoirs de maths à sa machine :þ. Plus sérieusement j'ai toujours pas compris l'intérêt d'enseigner les tableaux de proportionalité, même plus de 10 ans après :')Oui, comme j'ai pas du tout d'idée j'écris un programme qui fait ce que je vois en cours. Oui, c'est vrai que sur un programme beaucoup plus grand cela ferais baisser pas mal les performances de re-calculer les coefficient à chaque tour de boucle. J'ai trouver un truc pas mal qui donne des "défis" de programmation : https://callicode.fr/pydefis/listedefis. Le programme qui calcule une moyenne : Code PYTHON :
Pour une fois, je l'ai adapté à l'utilisateur avec des input(), comme ça on n'a pas besoin de modifier le script. |