[Python]Situer mon niveau.
|
31-10-2016, 15h30
(Modification du message : 17-11-2016, 13h43 par ark.)
Message : #1
|
|
InforMods
Newbie Messages : 20 Sujets : 4 Points: 6 Inscription : Jul 2016 |
[Python]Situer mon niveau.
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. |
|
31-10-2016, 15h34
(Modification du message : 31-10-2016, 15h36 par supersnail.)
Message : #2
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,609 Sujets : 71 Points: 465 Inscription : Jan 2012 |
RE: [Python]Situé mon niveau.
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
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
31-10-2016, 15h41
Message : #3
|
|
b0fh
Membre actif Messages : 210 Sujets : 17 Points: 309 Inscription : Jul 2012 |
RE: [Python]Situé mon niveau.
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 |
|
31-10-2016, 16h16
Message : #4
|
|
InforMods
Newbie Messages : 20 Sujets : 4 Points: 6 Inscription : Jul 2016 |
RE: [Python]Situé mon niveau.
(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). |
|
31-10-2016, 17h57
Message : #5
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,609 Sujets : 71 Points: 465 Inscription : Jan 2012 |
RE: [Python]Situé mon niveau.
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 (et hésite pas là-encore à passer sur IRC et rester, même si c'est pas animé sur le moment, mais disons que c'est là que la majorité des échanges ont lieu :þ). 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 :þ
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
31-10-2016, 20h14
Message : #6
|
|
gruik
gouteur de savon Messages : 757 Sujets : 44 Points: 482 Inscription : Oct 2012 |
RE: [Python]Situé mon niveau.
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,
Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure. Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau, L'Art poétique) |
|
31-10-2016, 20h38
(Modification du message : 31-10-2016, 20h39 par InforMods.)
Message : #7
|
|
InforMods
Newbie Messages : 20 Sujets : 4 Points: 6 Inscription : Jul 2016 |
RE: [Python]Situé mon niveau.
(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. |
|
31-10-2016, 22h27
Message : #8
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,609 Sujets : 71 Points: 465 Inscription : Jan 2012 |
RE: [Python]Situé mon niveau.
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"
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
31-10-2016, 22h35
Message : #9
|
|
Junky
Snorky Master Messages : 228 Sujets : 35 Points: 203 Inscription : Mar 2013 |
RE: [Python]Situé mon niveau.
Bonjour,
Ou même faire de la récursivité. Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier
|
|
31-10-2016, 22h53
(Modification du message : 31-10-2016, 22h53 par InforMods.)
Message : #10
|
|
InforMods
Newbie Messages : 20 Sujets : 4 Points: 6 Inscription : Jul 2016 |
RE: [Python]Situé mon niveau.
(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 :
|
|
31-10-2016, 22h57
Message : #11
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,609 Sujets : 71 Points: 465 Inscription : Jan 2012 |
RE: [Python]Situé mon niveau.
C'est exactement ça
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
31-10-2016, 23h11
Message : #12
|
|
InforMods
Newbie Messages : 20 Sujets : 4 Points: 6 Inscription : Jul 2016 |
RE: [Python]Situé mon niveau. |
|
01-11-2016, 01h46
Message : #13
|
|
InforMods
Newbie Messages : 20 Sujets : 4 Points: 6 Inscription : Jul 2016 |
RE: [Python]Situé mon niveau.
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. |
|
01-11-2016, 11h37
(Modification du message : 01-11-2016, 11h38 par supersnail.)
Message : #14
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,609 Sujets : 71 Points: 465 Inscription : Jan 2012 |
RE: [Python]Situé mon niveau.
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 :>).
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
01-11-2016, 12h26
(Modification du message : 01-11-2016, 12h26 par InforMods.)
Message : #15
|
|
InforMods
Newbie Messages : 20 Sujets : 4 Points: 6 Inscription : Jul 2016 |
RE: [Python]Situé mon niveau.
(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. |
|
« Sujet précédent | Sujet suivant »
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
[PYTHON] un bot IRC basique | darcosion | 1 | 137 |
13-06-2016, 20h40 Dernier message: Yttrium |
|
[python] ANBU ::: TCP Session Hunter | St0rn | 2 | 222 |
25-02-2016, 18h45 Dernier message: otherflow |
|
[Python] Une autre façon de gérer les Virtualenv et Packages | thxer | 2 | 119 |
18-01-2016, 12h06 Dernier message: thxer |
|
[Python] rot script | ark | 9 | 427 |
08-03-2015, 00h37 Dernier message: ark |
|
[Python] Todo Manager | ark | 5 | 345 |
03-03-2015, 10h55 Dernier message: ark |
|
[python] Un décorateur pour inventorier les objets | b0fh | 1 | 156 |
04-12-2014, 17h50 Dernier message: thxer |
|
[python] UPnP Scanner | St0rn | 2 | 177 |
29-10-2014, 14h50 Dernier message: St0rn |
|
[python] Buffer Overflow : EBP et EIP | St0rn | 0 | 124 |
25-10-2014, 12h58 Dernier message: St0rn |
|
[Python] QuickHex | thxer | 9 | 419 |
15-08-2014, 20h26 Dernier message: sakiir |
|
Python : QuickBIn | octarin | 1 | 132 |
13-08-2014, 19h05 Dernier message: thxer |
Utilisateur(s) parcourant ce sujet : 3 visiteur(s)