Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
920 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5
Auteur Sujet :

Apprendre le python

n°2353037
true-wiwi
Posté le 01-05-2020 à 14:57:36  profilanswer
 

Reprise du message précédent :
Clairement.
 
C'est mon sujet de mémoire pour mon alternance et c'est pas techno dépendant :D


---------------
It's a simple mistake to make, to create love and to fall.
mood
Publicité
Posté le 01-05-2020 à 14:57:36  profilanswer
 

n°2353046
rufo
Pas me confondre avec Lycos!
Posté le 01-05-2020 à 17:15:36  profilanswer
 

Ah oui, ton mémoire porte sur la pérennité des libs et frameworks dans les applis ?
Je dois avouer que je serais intéressé de lire ton mémoire si c'est possible :jap:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2353048
true-wiwi
Posté le 01-05-2020 à 18:22:42  profilanswer
 

Non c'est plus général. Je m'intéresse à l'impact de la dette technique sur les projets informatiques.
 
Du coup ça touche aux dévs, à l'organisation des équipes, à la méthode de gestion de projet, à l'organisation de l'entreprise, la gouvernance...


---------------
It's a simple mistake to make, to create love and to fall.
n°2353049
rufo
Pas me confondre avec Lycos!
Posté le 01-05-2020 à 19:07:50  profilanswer
 

Ah oui, effectivement, vaste sujet ! Ca m'intéresse :)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2353058
citation
Posté le 01-05-2020 à 20:47:14  profilanswer
 

https://i.kym-cdn.com/photos/images/original/000/353/279/e31.jpg
 
c'est parti d'une question python élémentaire
et maintenant on parle de dette technique, frameworks, gouvernance (?) :ouch:  
du coup j'ai wiki "dette technique"
je commence à bien voir les différences entre coder et développer, c'est un autre monde :D  

n°2353059
MaybeEijOr​Not
but someone at least
Posté le 01-05-2020 à 20:49:48  profilanswer
 

Suffit de l'effacer la dette technique. [:cosmoschtroumpf]


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2353063
true-wiwi
Posté le 02-05-2020 à 00:02:48  profilanswer
 

rufo a écrit :

Ah oui, effectivement, vaste sujet ! Ca m'intéresse :)


Si j'ai le droit de diffuser une fois, pas de souci je ferai tourner :jap:

 

Vous avez une autre piste ensuite pour enchaîner sur la progression python ?

 

J'ai tenté codingame au tout début, ça n'est pas adapté pour le moment, trop exigeant.


---------------
It's a simple mistake to make, to create love and to fall.
n°2353066
citation
Posté le 02-05-2020 à 06:46:39  profilanswer
 

openclassrooms m'avait bien plu pour le css-html-javascript, c++, je suppose qu'ils ont des bons tutos/cours sur le python
 
ya 40h de cours apparemment :
https://openclassrooms.com/fr/cours [...] rez-python


Message édité par citation le 02-05-2020 à 06:47:22
n°2353067
rufo
Pas me confondre avec Lycos!
Posté le 02-05-2020 à 09:33:42  profilanswer
 

Une fois que t'as vu les bases du langages (variables/types, conditions/boucles, manip des chaînes et des nombres...), je pense qu'après, pour progresser, faut faire des projets et se confronter aux pbs.
+1 pour openClassroom.
 
Mais comme je le disais, le plus compliqué pour coder, c'est identifier le pb et l'algo qui le résout, bref, se constituer une boîte à outils. Et ça, ça prend des années.
 
Tu peux te programmer un jeu de la vie comme petit projet ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2353070
Trap D
Posté le 02-05-2020 à 09:57:01  profilanswer
 

rufo a écrit :

Et ça, ça prend des années.
 
Tu peux te programmer un jeu de la vie comme petit projet ;)

:bounce:  

mood
Publicité
Posté le 02-05-2020 à 09:57:01  profilanswer
 

n°2353072
true-wiwi
Posté le 02-05-2020 à 10:12:01  profilanswer
 

Ça a l'air tellement bien :love:
 
Je ne connaissais pas, merci pour la découverte :jap:


---------------
It's a simple mistake to make, to create love and to fall.
n°2353080
raukoras
Posté le 02-05-2020 à 13:06:25  profilanswer
 

Je suis justement en train d'en faire un, suite à la lecture des posts précédents.  :O

 

Mais avec deux souches différentes, et des gènes différents, pour faire un peu de machine learning.

 

Pour me (re)mettre à la programmation et apprendre python, j'avais trouvé une formation "learn python by building a blockchain" de chez pakt publishing, qui est très bien et très didactique.

 

Poke @gusano, vu que ça parle souvent blockchain dans ton secteur.

n°2353084
Polichinol
Posté le 02-05-2020 à 15:10:04  profilanswer
 

Hermes le Messager a écrit :


 
C'est pour cela que je conseille toujours de se fixer un but (raisonnable hein, inutile de viser un jeu vidéo complexe) comme une simple calculatrice en mode texte, puis en mode GUI.


 
Je pense commencer avec des exercices en ligne pour  me familiariser  et progresser.  
Pour l'instant je manque d'imagination sur ce que je pourrais ou aimerais faire avec.  
 

rufo a écrit :


C'est pour ça que je trouve important d'apprendre à coder dès le plus jeune âge. J'avais proposé un projet d'initiation à l'école de mes enfants. En fonction de l'âge, ça tournait autour de Scratch (ou similaire comme sur code.org), d'algoid (sorte de docteur logo sur tablette Androïd) et Leekwars. Mais la maîtresse se le sentait pas. Finalement, l'an dernier, elle a fait un projet Scratch. :)


 
C'est super comme initiative.  
 

citation a écrit :

https://i.kym-cdn.com/photos/images [...] 79/e31.jpg
c'est parti d'une question python élémentaire
et maintenant on parle de dette technique, frameworks, gouvernance (?) :ouch:  
du coup j'ai wiki "dette technique"
je commence à bien voir les différences entre coder et développer, c'est un autre monde :D  


 
 [:apges:5]  
 

n°2353441
utilisateu​r25
Posté le 07-05-2020 à 19:39:07  profilanswer
 

true-wiwi a écrit :

Okay ça marche.

 

Parce que j'ai tenté de faire un topik unik Powershell et ça n'a pas vraiment pris.


Ah ouais ? Je ne savais, je vais venir, j'aurai plein de questions à poser !

n°2353446
true-wiwi
Posté le 07-05-2020 à 20:35:34  profilanswer
 

Ah bah vas y !

 

Ça fait un moment que j'ai pas touché à python. C'est chiant trop de taf.


---------------
It's a simple mistake to make, to create love and to fall.
n°2367550
Hermes le ​Messager
Breton Quiétiste
Posté le 10-11-2020 à 18:18:39  profilanswer
 

Alors je vais faire revivre un peu ce topic.  
 
Ma fille de 9 ans s'est mise au python (avec mon aide) il y a quasiment 3 mois.
 
On a utilisé ce bouquin :  
https://blackwells.co.uk/bookshop/p [...] rkQAvD_BwE
 
Et maintenant elle est sur tkinter et on utilise cette playlist :
 
https://youtu.be/yQSEXcf6s2I
 
Alors au sujet du livre plus haut, il est très bien foutu mais il a deux gros défaut :
 
1) Il utilise le shell bcp trop longtemps ce qui est ennuyeux.
2) Il utilise les modules bcp trop tard, en particulier, on ne peut pas utiliser random avant longtemps ce qui empêche de faire des petits exercices (par exemple de math) intéressants pendant trop longtemps.  
 
Du coup, j'ai utilisé le livre pour débuter et comme "complément" avec ma fille.  
 
En trois mois on a vu ceci :
 
calculs
variables
strings
lists, tuples, maps
turtles
if else
loops (for in and while)
functions
modules
 
Maintenant elle est sur tkinter.
 
On a pas vu les class + objets que je réserve pour plus tard, car je veux qu'elle approfondisse bien ce qu'elle sait avant.
 
Il ne faut surtout pas frustrer les enfants. Donc j'ai au fur et à mesure inventé pleins de petits exercices en lien avec son programme de math de ce qui correspond au CM1 ici au UK.
 
Pour l'éditeur de code, j'ai opté pour thony. C'est vraiment parfaitement adapté pour les débutants et les enfants. Il y a l'auto-complétion qui est précieuse, il y a aussi l'installation de module sans utiliser la ligne de commande (Quand on s'adresse à un enfant de 9 ans, on a pas envie de le saouler avec le path ou d'autres trucs du même genre - chaque chose en son temps)
 
Voilà, je complèterais au fur et à mesure. Là, elle en est au tuto pour faire un image viewer avec tkinter.
 
Elle se débrouille maintenant TOUTE SEULE, et je suis là seulement quand un truc ne marche pas ou si elle a des questions.
 
C'est LE point le plus difficile : donner l'autonomie à l'enfant car vous ne pouvez pas être constamment derrière (et puis c'est rarement ce que les enfants veulent)


Message édité par Hermes le Messager le 10-11-2020 à 18:19:03

---------------
Expert en expertises
n°2367560
rufo
Pas me confondre avec Lycos!
Posté le 10-11-2020 à 18:41:50  profilanswer
 

Je vois un autre point négatif à ton bouquin pour des enfants de 9 ans en France : il est en anglais :D
Mais sinon, c'est bien que ta fille de 9 ans soit motivée pour coder (peu importe le langage). Il y a quelques mois, j'avais mis mon fils de 12 ans à LeekWarz. Ben il a lâché l'affaire j'ai l'impression :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2367563
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 10-11-2020 à 18:46:00  profilanswer
 

Moi ma fille de 9 ans est fan de la redstone dans Minecraft, elle s'amuse à faire des petits mécanismes pas trop mal fichus :D


---------------
J'ai un string dans l'array (Paris Hilton)
n°2367564
true-wiwi
Posté le 10-11-2020 à 18:47:04  profilanswer
 

J'ai pas eu le temps de reprendre tiens, surtout que j'ai commencé un nouveau poste.
 
Mais c'est cool que ça continue de vivre :jap:


---------------
It's a simple mistake to make, to create love and to fall.
n°2367573
Hermes le ​Messager
Breton Quiétiste
Posté le 10-11-2020 à 19:23:51  profilanswer
 

rufo a écrit :

Je vois un autre point négatif à ton bouquin pour des enfants de 9 ans en France : il est en anglais :D
Mais sinon, c'est bien que ta fille de 9 ans soit motivée pour coder (peu importe le langage). Il y a quelques mois, j'avais mis mon fils de 12 ans à LeekWarz. Ben il a lâché l'affaire j'ai l'impression :/


 
Le bouquin existe en français et pour les tutos, tu as la traduction en temps réel je pense, mais je sais pas si c’est utilisable.


---------------
Expert en expertises
n°2369411
le poireau
légume
Posté le 26-11-2020 à 13:20:40  profilanswer
 

Vous auriez un bon bouquin pour le Python à feuilleter dans les transports ?

n°2369420
Hermes le ​Messager
Breton Quiétiste
Posté le 26-11-2020 à 14:00:40  profilanswer
 

Edit pour dire que je viens de passer ma fille sur pycharm community edition (gratos donc).  
Thony est parfait pour commencer, mais là, j'en avais marre de l'auto-complétion qui ne s'active qu'en pressant la touche tab... Et c'est trop lent en général.
J'hésitais à passer dessus parce que créer un fichier .py et le "jouer" est un peu plus compliqué et ajouter des nouveaux modules est moins facile à trouver dans les settings, mais en fait ma fille s'est parfaitement adaptée.


---------------
Expert en expertises
n°2369692
jujuf1
Je suis un chat
Posté le 29-11-2020 à 11:36:54  profilanswer
 

Salut. Drap.  
 
En terme d’interface graphique j’ai vu pyQT. Y’a mieux ?  
 
Aussi, ce qui serait super c’est de faire tourner des app en python sur mobile mais je ne sais pas dans quelle mesure c’est possible.

n°2369693
Hermes le ​Messager
Breton Quiétiste
Posté le 29-11-2020 à 13:56:30  profilanswer
 

jujuf1 a écrit :

Salut. Drap.  
 
En terme d’interface graphique j’ai vu pyQT. Y’a mieux ?  
 
Aussi, ce qui serait super c’est de faire tourner des app en python sur mobile mais je ne sais pas dans quelle mesure c’est possible.


 
Justement, j’ai fait récemment des recherches là dessus et pour du desktop, PyQT est ce qu’il y a de mieux. :/ Ce qui veut dire que c’est pas franchement terrible. :/
 
Pour python sur mobile, laisse tomber.


---------------
Expert en expertises
n°2369695
jujuf1
Je suis un chat
Posté le 29-11-2020 à 14:26:07  profilanswer
 

Hermes le Messager a écrit :


 
Justement, j’ai fait récemment des recherches là dessus et pour du desktop, PyQT est ce qu’il y a de mieux. :/ Ce qui veut dire que c’est pas franchement terrible. :/
 
Pour python sur mobile, laisse tomber.


Je te remercie. C’est la sensation que j’en avais aussi ...

n°2369701
Feitan21
Posté le 29-11-2020 à 22:41:40  profilanswer
 

C'est pas bien de faire une interface en HTML ? J'avais commencé à regarder Bootstrap Studio pour faire une interface en HTML et ensuite juste relier tout ça en Python.
 
J'avais déjà fait une WebApp avec Dash et c'était super pratique et simple à utiliser.

n°2369702
true-wiwi
Posté le 29-11-2020 à 22:43:49  profilanswer
 

Si c'est jouable, y'a même des framework pour faire du web avec du python.


---------------
It's a simple mistake to make, to create love and to fall.
n°2369749
Hermes le ​Messager
Breton Quiétiste
Posté le 30-11-2020 à 14:22:50  profilanswer
 

Feitan21 a écrit :

C'est pas bien de faire une interface en HTML ? J'avais commencé à regarder Bootstrap Studio pour faire une interface en HTML et ensuite juste relier tout ça en Python.
 
J'avais déjà fait une WebApp avec Dash et c'était super pratique et simple à utiliser.


 

true-wiwi a écrit :

Si c'est jouable, y'a même des framework pour faire du web avec du python.


 
Oui enfin bon, c'est loin d'être la panacée tout cela.
 
Tout d'abord, c'est adapté aux arch server <-> client. Cela passe par un webserver.
 
Et surtout la plupart du temps, il faut aussi avoir de bonnes compétences en HTML, SCSS/CSS, JS etc...  
 
Alors bien sûr on peut aussi utiliser des solutions à base de webview dans python genre electron comme EEL.
 
Tout cela implique de maîtriser de nombreuses technos et n'est absolument pas adapté pour quelqu'un qui apprend la prog et le python.
 
Je pense qu'il vaut mieux maîtriser à fond python et tkinter ou plus tard pyqt ou pygtk avant de se lancer dans des solutions du genre de EEL ou des frameworks web complexes.
 
Une fois qu'on a une bonne maîtrise et des bases solides, alors bien sûr on peut se diriger vers s'autres solutions.


---------------
Expert en expertises
n°2370123
Hermes le ​Messager
Breton Quiétiste
Posté le 03-12-2020 à 13:03:21  profilanswer
 

Pour continuer à faire vivre le topic :
 
Concernant le "positioning" avec tkinter, vu que ma fille étudie cela, on a procédé dans cet ordre :
 
- positioning with pack
- positioning with grid
- positioning with frame
- positioning with place
 
On a déjà vu les 3 premiers et tout se passe pour le mieux.


Message édité par Hermes le Messager le 03-12-2020 à 13:03:44

---------------
Expert en expertises
n°2370489
Hector Str​inger
Posté le 06-12-2020 à 20:54:06  profilanswer
 

Bonjour a vous,

 

Question: j'aimerais apprendre le Python pour un projet concernant des statistiques sur les résultats de foot. Type Lotofoot.
J'ai bien fait quelques tutos en ligne qui m'ont un peu aidé. Mais j'aimerais un bouquin, histoire d'avoir un support physique car ca serait pour apprendre lors des pauses au boulot (pas d'ordi). En plus, j'aimerais un truc un peu structuré car les tutos en ligne, c'est sympa mais sans plus (c'est un peu a l'arrache quoi).
Donc pour un projet sur des tables type CSV pour en tirer des statistiques et probabilités. Vous me conseillerez quel bouquin ?

Message cité 1 fois
Message édité par Hector Stringer le 06-12-2020 à 20:56:59
n°2370542
Feitan21
Posté le 07-12-2020 à 14:36:46  profilanswer
 

Pour importer des csv, Pandas c'est vraiment le top.
Ensuite pour les stats ça dépend ce que tu veux faire. Il y a plein de trucs déjà intégré dans pandas (mean, std, ...) si tu veux faire des régressions numpy/sklearn c'est suffisant et bien documenté.
Si tu veux aller plus loin il faudra passer par Pingouin (package de stats assez basique et qui fonctionne bien avec pandas) ou statsmodel (plein de fonctions, mais package mal foutu).
 
Pour les livres je ne sais pas trop, désolé

n°2371025
utilisateu​r25
Posté le 10-12-2020 à 15:19:52  profilanswer
 

Hector Stringer a écrit :

Bonjour a vous,
 
Question: j'aimerais apprendre le Python pour un projet concernant des statistiques sur les résultats de foot. Type Lotofoot.
J'ai bien fait quelques tutos en ligne qui m'ont un peu aidé. Mais j'aimerais un bouquin, histoire d'avoir un support physique car ca serait pour apprendre lors des pauses au boulot (pas d'ordi). En plus, j'aimerais un truc un peu structuré car les tutos en ligne, c'est sympa mais sans plus (c'est un peu a l'arrache quoi).
Donc pour un projet sur des tables type CSV pour en tirer des statistiques et probabilités. Vous me conseillerez quel bouquin ?


 
tu peux trouver le livre de Gérard Swinnen, on le trouve aussi en version pdf gratuitement sur developpez.com . Si tu as une liseuse ou que la lecture sur smartphone ne te dérange pas cela devrait répondre à ton besoin.

n°2372380
epsiloneri​dani
Posté le 25-12-2020 à 17:24:23  profilanswer
 

Bonjour, je suis en train de me mettre au python, je ne suis pas informaticien et j'apprends sur le tas pendant le confinement, c'est pour faire de l'analyse de données scientifiques. J'utilise la version 3.9.0
 
J'arrive à faire mes calculs et à stocker le résultat dans des fichiers, par contre j'aimerais bien pouvoir les visualiser et je bute sur un point a priori assez stupide. J'ai localisé le problème donc voilà un programme tout simple qui va vous expliquer où je bloque :
 

Code :
  1. import tkinter as tk, time
  2. #Creation de la fenêtre
  3. window = tk.Tk()
  4. bouton_end=tk.Button(window,text='end', width=20,command = window.destroy)
  5. test_dessin=tk.Canvas(window, bg='white', height=500, width = 500)
  6. bouton_end.pack()
  7. test_dessin.pack()
  8. #Creation d'un cercle et déplacement sur 2,5s
  9. circle=test_dessin.create_oval(50,50,70,70,fill='red')
  10. for i in range(50):
  11.     test_dessin.after(50,test_dessin.move(circle, 5, 5))
  12.     window.update()


 
Ce que je voudrais : le programme génère un cercle et le déplace progressivement à travers la fenêtre pendant 2,5s
Ce que le programme fait : il attend 2,5s et me place directement le cercle à sa position finale
 
Je suppose qu'il y a une instruction pour mettre à jour le canevas mais je ne la trouve pas.

n°2372388
Feitan21
Posté le 25-12-2020 à 20:22:11  profilanswer
 

Je ne crois pas que move permette de faire un mouvement lissé.  
Ce que tu peux faire c'est créé une fonction avec le temps et la distance. Puis tu détermines un delta temps par exemple 0.1s
Tu calcules la nouvelle distance à parcourir à chaque dt et tu auras quelque-chose de progressif.
 
Tu peux même, plutôt qu'introduire une vitesse constante ajouter l'accélération pour avoir un déplacement plus lent au début et à la fin.

n°2372391
true-wiwi
Posté le 25-12-2020 à 21:01:01  profilanswer
 

Il me semble que dans le cours python sur fun mooc ils expliquent comment faire.


---------------
It's a simple mistake to make, to create love and to fall.
n°2373197
Hermes le ​Messager
Breton Quiétiste
Posté le 06-01-2021 à 12:07:01  profilanswer
 

Toujours pour faire vivre un peu le topic.
 
Premier Tkinter programmes (on en a fait plein ensemble déjà) entièrement élaboré par elle, commentaires compris, absolument tout sans aucune aide.
 
Elle avait un exo de math à faire qui demandait de lancer deux dés. Je lui ai donc dit qu'elle pouvait faire un programme qui lance les dés.
 
Voilà ce qu'elle a pondu en un peu plus de 30 minutes :
 

Code :
  1. # import
  2. from tkinter import *
  3. import random
  4. # create window
  5. window = Tk()
  6. window.title('dice')
  7. window.geometry('250x200')
  8. # var init
  9. entry1 = None
  10. entry2 = None
  11. def roll_the_dice1():
  12.     """
  13.     pick 2 random numbers and print them inside the 2 entries
  14.     and clear the 2 entries.
  15.     :param: None
  16.     :return: None
  17.     """
  18.     global entry1
  19.     global entry2
  20.     entry1.get()
  21.     entry2.get()
  22.     dice1 = random.randrange(1, 6)
  23.     dice2 = random.randrange(1, 6)
  24.     entry1.delete(0, END)
  25.     entry1.insert(0, dice1)
  26.     entry2.delete(0, END)
  27.     entry2.insert(0, dice2)
  28. # GUI definition
  29. label = Label(window, text='Game: Roll the dice!', font='Bold', fg='red')
  30. label.grid(row=0, column=0, padx=35, pady=10)
  31. button = Button(window, text='roll the dice', command=roll_the_dice1)
  32. button.grid(row=1, column=0, pady=(0, 10))
  33. entry1 = Entry(window)
  34. entry1.grid(row=2, column=0, pady=(0, 10))
  35. entry2 = Entry(window)
  36. entry2.grid(row=3, column=0)
  37. # mainloop
  38. mainloop()


 
Et ça marche!  
 
Alors évidemment c'est pas parfait.
 
- Elle a utilisé global pour les "entry" alors que ce n'était pas nécessaire.
- Elle utilise randrange(1, 6) ce qui semble logique, mais manque de bol, le 6 ne sortira jamais car le second paramètre de randrange n'est pas inclus. Le 5 sortira au maximum. A noter que c'est d'ailleurs TRES mal documenté. Il faut donc (1, 7)
- Les noms des variables entry1, entry2 ainsi que label ou button sont mal choisis. Je lui ai plusieurs fois dit qu'il faut choisir soigneusement le nom des variables et qu'on sache à quoi elles correspondent. Elle aurait donc du choisir par exemple entry_dice1 ou encore label_title
- Elle a oublié de renommer la function qui devrait s'appeler roll_the_dices() ou encore roll_2_dices()
 
Mais à part cela, je trouve que c'est pas mal du tout pour une enfant de 9 ans. On attaque notre 5° mois de programmation. Elle en fait tous les jours. Elle alterne python et roblox studio et aussi un peu de gimp.
 
Pour le moment, je ne compte pas la mettre sur les classes et les objets dans python. Je vais attendre que tout ce qu'elle sait soit ultra stabilisé, probablement dans quelques mois encore. Elle utilise en réalité déjà les objets sans le savoir, y compris dans roblox studio où elle commence doucement avec le scripting (Lua). Je pense qu'il faut y aller doucement. Elle est très enthousiaste en tous cas.
 
J'ai voulu lui ouvrir un compte github, mais on ne peut pas en dessous de 13 ans. Du coup, je suis en train de regarder les alternatives s'il y en a.


Message édité par Hermes le Messager le 06-01-2021 à 12:12:53

---------------
Expert en expertises
n°2373206
true-wiwi
Posté le 06-01-2021 à 13:37:20  profilanswer
 

C'est pas mal du tout tu veux dire ! C'est mieux que moi  [:tinostar]


---------------
It's a simple mistake to make, to create love and to fall.
n°2373218
Jubijub
Parce que je le VD bien
Posté le 06-01-2021 à 14:57:35  profilanswer
 

c'est hyper bien [:icon14]
 
pis bon, there are 2 hard things in computer science :  
- cache invalidation
- naming things
- off by one errors


---------------
Jubi Photos : Flickr - 500px
n°2373867
epsiloneri​dani
Posté le 14-01-2021 à 12:12:06  profilanswer
 

Ca fait un mois que je me suis mis au Python (et à la programmation en général), j'arrive à faire plus ou moins ce que je veux mais évidemment ça reste simple.  
 
J'ai programmé un Tetris qui marche presque : les briques descendent, tournent et s'empilent bien comme il faut, il me reste plus qu'à comprendre pourquoi les briques ne disparaissent pas quand une ligne est complétée. Je suspecte une fonction tkinter qui ne fonctionne pas exactement comme je croyais mais il va falloir que je teste puis que j'adapte mon programme.  
 
J'ai aussi fait un programme qui à partir d'une image, calcule une nouvelle image correspondant à la première vue à travers une sphère transparente (par la méthode du raytracing, je me suis d'ailleurs arraché les cheveux pour calculer les équations) je ne sais pas si ça fonctionne parfaitement mais  l'image produite semble convaincante.
 
Donc ça tourne mais il va falloir que j'améliore la structuration de mes programmes parce qu'au niveau lisibilité, je pense avoir de la marge, cf un bout de mon programme de ray-tracing (et encore c'est pas le pire parce que c'est pas le "boitier mathématique" du programme.
 

Code :
  1. def ref_image(self):
  2.         def calculate_ray(lray):
  3.             #Calculates the luminous intensity associated with a light ray
  4.             sph_intersec=self.sphere_intersect(lray)
  5.             if sph_intersec[0]:  #Procedure if next intersection is with the sphere
  6.                 #Get intersection point
  7.                 t_intersec=self.sphere_intersect(lray)[1]
  8.                 x_int=self.ray['vector'][0][1]+self.ray['vector'][0][0]*t_intersec
  9.                 y_int=self.ray['vector'][1][1]+self.ray['vector'][1][0]*t_intersec
  10.                 z_int=self.ray['vector'][2][1]+self.ray['vector'][2][0]*t_intersec
  11.                 #Coordinates of the radius vector
  12.                 radius=(x_int-self.sphere_center[0],y_int-self.sphere_center[1],z_int-self.sphere_center[2])
  13.             return (0,0,0)
  14.             #return self.pix_init[i][j][0],self.pix_init[i][j][1],self.pix_init[i][j][2]
  15.        
  16.         self.reflectance_calc()
  17.        
  18.         new_pix=[]
  19.         for i in range(self.length):
  20.             line=[]
  21.             for j in range (self.width):
  22.                 #A light ray is defined by a parametric equation
  23.                 #(6 parameters : origin + direction), by its intensity and
  24.                 #by its localization (in or out of the sphere)
  25.                 self.ray['vector']=((0,i),(0,j),(1,-1000))
  26.                 self.ray['intensity']=1.0
  27.                 self.ray['inside']= False
  28.                 if ((i-self.sphere_center[0])**2+(j-self.sphere_center[1])**2<self.sphere_radius**2):
  29.                     line.append(calculate_ray(self.ray))
  30.                 else:
  31.                     line.append((self.pix_init[i][j][0],self.pix_init[i][j][1],self.pix_init[i][j][2]))
  32.                 #self.pix_init[i][j][0]*d,self.pix_init[i][j][1]*d,self.pix_init[i][j][2])
  33.             new_pix.append(line)
  34.         new_array=np.array(new_pix,dtype=np.uint8)
  35.         PIL.Image.fromarray(new_array).show()


 
Il faudrait que je trouve encore deux/trois idées de trucs à programmer pas trop long (disons, de l'ordre de 200 lignes de code) avec de la manipulation de listes de dictionnaires de listes de listes de tuples pour être à l'aise et me lancer dans les projets qui m'intéressent.

n°2373869
Hermes le ​Messager
Breton Quiétiste
Posté le 14-01-2021 à 12:45:24  profilanswer
 

epsiloneridani a écrit :

Ca fait un mois que je me suis mis au Python (et à la programmation en général), j'arrive à faire plus ou moins ce que je veux mais évidemment ça reste simple.  
 
J'ai programmé un Tetris qui marche presque : les briques descendent, tournent et s'empilent bien comme il faut, il me reste plus qu'à comprendre pourquoi les briques ne disparaissent pas quand une ligne est complétée. Je suspecte une fonction tkinter qui ne fonctionne pas exactement comme je croyais mais il va falloir que je teste puis que j'adapte mon programme.  
 
J'ai aussi fait un programme qui à partir d'une image, calcule une nouvelle image correspondant à la première vue à travers une sphère transparente (par la méthode du raytracing, je me suis d'ailleurs arraché les cheveux pour calculer les équations) je ne sais pas si ça fonctionne parfaitement mais  l'image produite semble convaincante.
 
Donc ça tourne mais il va falloir que j'améliore la structuration de mes programmes parce qu'au niveau lisibilité, je pense avoir de la marge, cf un bout de mon programme de ray-tracing (et encore c'est pas le pire parce que c'est pas le "boitier mathématique" du programme.
 

Code :
  1. def ref_image(self):
  2.         def calculate_ray(lray):
  3.             #Calculates the luminous intensity associated with a light ray
  4.             sph_intersec=self.sphere_intersect(lray)
  5.             if sph_intersec[0]:  #Procedure if next intersection is with the sphere
  6.                 #Get intersection point
  7.                 t_intersec=self.sphere_intersect(lray)[1]
  8.                 x_int=self.ray['vector'][0][1]+self.ray['vector'][0][0]*t_intersec
  9.                 y_int=self.ray['vector'][1][1]+self.ray['vector'][1][0]*t_intersec
  10.                 z_int=self.ray['vector'][2][1]+self.ray['vector'][2][0]*t_intersec
  11.                 #Coordinates of the radius vector
  12.                 radius=(x_int-self.sphere_center[0],y_int-self.sphere_center[1],z_int-self.sphere_center[2])
  13.             return (0,0,0)
  14.             #return self.pix_init[i][j][0],self.pix_init[i][j][1],self.pix_init[i][j][2]
  15.        
  16.         self.reflectance_calc()
  17.        
  18.         new_pix=[]
  19.         for i in range(self.length):
  20.             line=[]
  21.             for j in range (self.width):
  22.                 #A light ray is defined by a parametric equation
  23.                 #(6 parameters : origin + direction), by its intensity and
  24.                 #by its localization (in or out of the sphere)
  25.                 self.ray['vector']=((0,i),(0,j),(1,-1000))
  26.                 self.ray['intensity']=1.0
  27.                 self.ray['inside']= False
  28.                 if ((i-self.sphere_center[0])**2+(j-self.sphere_center[1])**2<self.sphere_radius**2):
  29.                     line.append(calculate_ray(self.ray))
  30.                 else:
  31.                     line.append((self.pix_init[i][j][0],self.pix_init[i][j][1],self.pix_init[i][j][2]))
  32.                 #self.pix_init[i][j][0]*d,self.pix_init[i][j][1]*d,self.pix_init[i][j][2])
  33.             new_pix.append(line)
  34.         new_array=np.array(new_pix,dtype=np.uint8)
  35.         PIL.Image.fromarray(new_array).show()


 
Il faudrait que je trouve encore deux/trois idées de trucs à programmer pas trop long (disons, de l'ordre de 200 lignes de code) avec de la manipulation de listes de dictionnaires de listes de listes de tuples pour être à l'aise et me lancer dans les projets qui m'intéressent.


 
Alors il y a plusieurs choses à considérer.
 
Premièrement, si tu te mets à la programmation, je te conseille de ne pas brûler les étapes et de faire en sorte que tu sois solide dans ce que tu apprends. Pour tkinter par exemple, tu peux prendre tous les widgets 1 par 1 et t'en servir avec des exemples ultra simples. Si je prend l'exemple du radiobutton, tu peux te contenter d'avoir un choix avec des radiobuttons, récupérer la valeur une fois que tu cliques sur un bouton de validation pour ensuite afficher la valeur dans un messagebox. Je te conseille de procéder de manière systématique.  
Il y a une playlist que j'ai mise en lien quelques messages plus haut pour tkinter. Mais si tu suis un ou plusieurs tutos, fais en sorte de te faire ton propre exercice derrière pour être sûr que tout a bien été assimilé.
 
Je te conseille de te concentrer d'abord sur une approche procédurale et de faire en sorte de te sentir ultra solide avant de passer à l'approche objet. Tous les exercices que tu fais peuvent être réalisés en utilisant les deux approches, ce que je te conseille de faire, une fois que l'approche procédurale est parfaitement acquise.
 
Enfin, et c'est TRES important et peu abordé par les différents tutoriaux que tu vas trouver, il faut absolument que tu lises ceci :
 
https://towardsdatascience.com/lear [...] 3011f6a8d5
 
Qui découle de cela :
 
https://www.python.org/dev/peps/pep-0257/
 
L'art de commenter ton code, c'est 50% d'un travail bien fait. Cela ne permet pas seulement aux autres de récupérer ton travail plus tard, mais cela te force à comprendre systématiquement ce que tu fais et à être rigoureux. Un problème correctement compris et documenté est un problème à moitié (sinon plus) résolu.  [:bool_de_gom]  


---------------
Expert en expertises
n°2373876
rufo
Pas me confondre avec Lycos!
Posté le 14-01-2021 à 13:41:53  profilanswer
 

Etonnant, dans les remarques sur les commentaires, ils parlent pas du format javadoc. Perso, je l'utilise pour présenter mes fonctions.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5

Aller à :
Ajouter une réponse
 

Sujets relatifs
Python Request et Android HttpURLConnection équivalentPython sous Abaqus
Jeu carte bataille python[Python] Exercice nombre premiers et fonction seuil
[Python] Erreur de Syntaxe try:Bloqué exercice cours Python
Module pymedia pour python 3.7 windows 10Arrêter une macro python à la fin de l' exécution.
Erreur macro pythonErreur import librairie python
Plus de sujets relatifs à : Apprendre le python


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR