1

yop,

Je cherche à apprendre Python, il me faut donc une doc. En C et en C++, j'ai appris avec les bouquins de Claude Delanoy, que je recommande. Malheureusement il ne donne pas dans le Python...
Mais les bouquins en ce moment, c'est compliqué. Je cherche donc une doc dans le même genre.
Surtout pas des tutos, du style "je crée un bouton et je clique dessus", je préfère les choses très génériques sur le langage, voir tous ses aspects.

Il me faudrait un IDE aussi, auquel s'intégrerait bien les binaires officiels de Python, avec un débogueur etc...
Et accessoirement, un framework pour tout ce qui est fenêtrage (je ne connais que tkinter, de nom, mais j'imagine que ce n'es tpas le seul).


Merci d'avance pour tout !

2

flanker a été invité sur ce sujet.


(ben oué, forcément cheeky)

3

Veux-tu des bouquins physiques ou bien du dématérialisé (PDF/EPUB) te convient quitte à mettre ça sur une liseuse ? Car Humble Bundle fait régulièrement des bundles d'ebooks notamment sur Python donc ça peut te permettre d'avoir un large panel de bouquins pour une bouchée de pain !

EDIT: quelque-soit le bouquin retenu vérifie bien que les exemples sont en Python 3 car la v2 est dépréciée depuis le début de cette année après des années d'handicap (IMO) à maintenir 2 versions du même langage.
avatar
"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."

Benj Edwards - Why History Needs Software Piracy

- - -
Achat ou échange: topic de mes recherches Meilleur smiley = #helico# Obligatory XKCD

4

Ça tombe bien, j'ai un pote (qui n'est pas du tout informaticien ni une tapette mais commissaire de police©) qui m'a posé exactement la même question aujourd'hui cheeky
Je vais donc chercher un peu pour des docs d'apprentissage.

Tout d'abord, comme dit Jonas, tu peux oublier Python 2. Mais alors totalement.

Ensuite, l'IDE. Je ne peux que recommander PyCharm (j'achète la version pro à titre perso mais la version gratuite est très bien), qui est très loin au-dessus des autres IDE que j'ai pu tester.
Il intègre un déboggueur, bien évidemment (qui va afficher directement dans ton code la valeur des variables, c'est sympa) et beaucoup d'autres fonctionnalités, notamment une bonne inférence de type que tu peux aider en indiquant le type des variables quand il ne le trouve pas tout seul (je fais en sorte que PyCharm soit capable de déterminer le type dans la quasi-intégralité de mon code, du coup c'est très rare que j'ai des erreurs de type).

Les applications graphiques sont le point faible de Python, mais il y a un petit framework pas très connu (Qt, je crois, mais je ne pense pas que tu connaisses…) et Kivy que je n'ai jamais utilisé mais multi-plate-forme (Linux, Windows, Android, iOS, macOS).

Dans les guides, pour plus tard :
-
Sam & MaxSam & MaxDu code, du cul
(nsfw mais plein de bons conseils)
- https://docs.python-guide.org
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

5

Jonas -> PDF !!! grin
Pas de truc sur liseuse, je n'en ai pas.

Bon donc coté IDE c'est bon, reste la doc et l'interface graphique. Pas pour faire du dessin, hein cheeky
Par contre, j'avais lu il y a quelques années que PyQt n'était pas la panacée. Cependant, si ça existe encore et que ça marche bienn c'est inespéré en effet wink

Merci déjà pour tout ça !

6

Pour la doc officielle : https://docs.python.org/3/ smile (tu peux l'installer dans Zeal également)
De mémoire, PyQt était à l'abandon mais a repris du poil de la bête. Par contre, c'est toujours GPL sad (contrairement à PySide qui lui est abandonné)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

7

En cherchant un peu, je suis tombé sur un Python en 10 minutes : https://www.stavros.io/tutorials/python/ et un tuto officiel : https://docs.python.org/fr/3.7/tutorial/
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

8

Oh yeah. Aller c'est parti, merci beaucoup !

9

* parmi les nombreux cours de Python disponibles, il y a celui de la NSA, mais j'ignore ce qu'il vaut: https://archive.org/details/comp3321/page/n89/mode/2up/search/device .

* il y a divers cours interactifs sur Codecademy, Udemy et autres;

* enfin, la plupart des modèles récents de calculatrices graphiques gèrent un sous-ensemble de Python 3.x grâce à MicroPython ou CircuitPython... mais la plupart n'ont pas assez de RAM pour permettre la réalisation de programmes non triviaux, c'est regrettable.
Actuellement, un seul modèle (plutôt) haut de gamme propose officiellement un Python bien élevé: la Casio Graph 90+E. Sur Nspire CX, il y a un vieux MicroPython non officiel et il n'y aura jamais de Python officiel; sur Nspire CX II, un Python officiel est prévu d'ici la fin 2020; sur HP Prime G1 et G2, un build comprenant un MicroPython beta qui fonctionnait mal a été posté en public et a rapidement disparu, donc les Prime restent équipées du mode de compatibilité Python d'une version obsolète de giac, qui n'est pas parfait.
Sur TI-68k, la meilleure chance d'avoir un Python serait une intégration de MicroPython à PedroM, similaire à celle de zs, parce que le programme ASM résultant d'un build à la hache de MicroPython dépasse assez nettement 64 KB. Mais si tu te lances là-dedans, tu ne passeras pas ce temps-là à apprendre Python, forcément ^^
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

10

Lionel Debroux (./9) :
il y a celui de la NSA, mais j'ignore ce qu'il vaut
Perso, je ferais davantage confiance à Flanker qu'à la NSA embarrassed

Lionel Debroux (./9) :
Sur TI-68k, la meilleure chance d'avoir un Python serait une intégration de MicroPython à PedroM
Râh mais chuuuuut ! Ce n'est pas parce que tout le monde y pensait qu'il faut le dire !
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

11

Surpuissant la doc pour apprendre en 10 minutes grin
Evidemment après faut pratiquer, mais ça donne l'eau à la bouche !

Pour le IDE, on m'a aussi parlé de Intellij IDEA (mais je pense que c'est payant) et de VSCode.
J'ai pas encore googlé ces deux-là, mais je crois que je vais suivre ton conseil.

12

PyCharm est la version Python d'IntelliJ, disponible en deux versions (une gratuite et une payante avec des plugins supplémentaires). Les IDE de Jetbrains (PyCharm, RubyMine, IntelliJ, etc.) sont spécialisés par langages.
VSCode, de ce que j'ai pu lire, peux être avec un peu de boulot configuré pour faire presque aussi bien que PyCharm. Ça m'a suffit grin
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

13

Sinon, point de vue interface graphique, je me suis rendu compte que 99% du temps il était plus simple de faire soit une interface en ligne de commande, soit une appli web (si une interface basique te suffit, Django permet de faire des applis complètes sans la moindre ligne de SQL/HTML/JS/CSS, avec la possibilité de les héberger gratuitement chez Heroku).
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

14

Bon ben voilà, dl en cours.
C'est con, il y a un embryon de support Python dans Qt Creator apparemment, même un template pour créer des projets. Mais rien de bien intégré, il faut bricoler encore pas mal. Tant pis.

15

Par appli web, tu entends une interface qui tourne dans un browser, hors-ligne, et qui ne me demande pas la moindre connaissance html/css/truc_que_je_veux_jamais_toucher ?

16

oui
Ton serveur tourne sur ta machine locale et l'URL est http://localhost/ .
Django génère automatiquement une interface d'administration pour ta base de données, interface qui peut énormément être personnalisée en Python (de façon progressive, en plus, ce qui permet d'avoir un résultat fonctionnel très rapidement).
Ça ne sera pas forcément très élégant, mais c'est franchement hyper pratique.
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

17

Merci, je donnerai un essai (#triclasse#) smile

18

(J'assume que tu auras sans doute des trucs à fix lors des essais! trioui)

19

Sûr, j'aurai.



Quand je vois toute la doc sur le langage, la stdlib, et tous les frameworks qui vont autour, les outils de génération de binaires et compagnie, je me dis que c'est dur de sortir de sa zone de confort, et que c'est comme si je repartais à zéro...
C'est une véritable montagne devant moi... tsss

20

Ça s’apprend très bien oui
J’ai un pote qui s’y est mis alors qu’il n’avait jamais fait d’informatique, alors tu devrais pouvoir y arriver.
En fait, pour la stdlib tu peux la parcourir rapidement pour voir ce qu’il y a dedans grosso-modo. Ensuite, quand tu voudras faire un truc, dis-toi toujours que quelqu’un l’a déjà fait !
Globalement le code Python est de bonne qualité et homogène.
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

21

L'apprentissage du langage, c'est pas juste sa syntaxe ou sa stdlib, c'est surtout (amha) penser avec les outils que donne le langage. Les façons de manipuler les listes, tuples, de créer ses structures de données adaptées aux spécificités du langage, bref, c'est en ce sens que je dis que j'ai tout à réapprendre. Clairement des exercices que je ne fais plus quand je fais du Qt/C++.

22

Je n'ai jamais fait de Python, mais je serais surpris que tu ne retrouves pas beaucoup de choses que tu connais déjà avec Qt ^^
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

23

Ca aide certainement, bien sûr. Mais Qt ne fait pas penser beaucoup différemment du C++ pur, c'est un framework en plus.
Bon bref, il faut juste un peu de courage, et j'éspère que je m'amuserai bien.
J'aimerais juste avoir plusieurs vies pour jouir en profondeur des attraits de chaque langage grin

24

Mais au début, tu feras du Python comme du C ou du C++… puis peu à peu, en lisant du code de qualité, tu feras du vrai Python smile

Puis quand tu seras au top, tu passeras à autre chose grin
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

25

flanker (./24) :
en lisant du code de qualité, tu feras du vrai Python
Effectivement, c'est un des trois piliers que je connais pour s'améliorer, avec la pratique et la lecture. Les trois me sont indispensables pour devenir bon. Seuls les génies peuvent se passer de l'appui des bons.



Aller motivé ! J'ai juste ça à lire et je pourrai attaquer mon premier hello world en console ! \o/

26

>>> 2**10
1024
>>> _
1024
>>> _**_
35249714121083826571348148398002815464391421343966471060391382605731070276854749365048330296473663862456968155395298373973259049475943113619888338673116133666814706870765271907656205646018608369985558721267670321739031938633833281889192620158426531806923144239269726876399951961191980348023291703472305763782410394589758934585631111078120435303032688818751446435291371357171755632775362932694795076313436687469638004327689390246735321855830610856865924913760826763776003265851716557334210642277343475757799780499021559822412434275087084317293455129570406707590002071704673135527533543217355987568107697577946785796412456048360072965616871024866244650081059068183038134518514222987186837394598019859512993600379236190197576838905080733359989094687008999416247722020061992559931401872357379708488585003666965930609730430774107407494018065365845077094320534700692354400169824131578389153656916754682252425562742895026822086112236185768931940433324078692386463642378029291582384550904012284265277124667452816985659337497580991592510201479766500877427834566619156314388107585743546289067551052434075678195345373363919571323210113622615511765134329627207955793605376892875938357672870881305679305521293359975427801921997534891474090868113467357784359783383091085717100807228425031226776985197364359404683041506613943646666199454899363685801848776729685837803228216113833854742443409221480450232563130417709625320794971672737737385983975520047739978165124906916857931960902407397841536657650378758012409157205939513085324282439290108909069036515430690359963152986587749930516880670326145036987607052961696781556418550966201822821857978020062536824015697620957222738065538832187097409859502669196589025961199448758997373792973191723335549772394878874050854532785922475822836403793986623193174020931432381418437022760412682276382989354839625453241289807108260905134234679130954867570447354549760174691007078528452745027994943853229480544512368831378761119681616719327637308142315105120528704683515182038320225078665313911731749364255621284434304945437214609406008640520972029509955435568094888815701470419410889156523971182172814423274140955428070594328381667048286771972857703435525803544707834567774027206614143419982410109261930698311010857874866840743851472857645330929169548403751084494725893729355450473771059986801058342021902735367627900974872368137838996397379898161454825970910732858202781282973937642847973381838672980693399039429342613001595148968082010016061022316242842367672741265405434553107296623559604413326352140529618171175450657884255099334618722731697920185582437182391397673301168160682516639214706566981465961731374808949131742364752993078326367714117001404210930251538132442219335072672096865184691303027156962439777053707286583949764055151291816402546462452719134797179099210233577596277925646031824172274874084562113440043397395191065473620717104250686040896580928700842593919173283844531470952205600874482302488523867074532907781264990865351844684807012208039108287564534854500486391538876063611476665620230294811468351835374072060530215907909311281816131942219776
La vache, j'ai pas fait exprès de demander ça, il me l'a pondu en une fraction de seconde. Pas mal le moteur d'arithmétique en représentation infinie cheeky

27

pouet,

Je veux "installer" ça :
dmroeder/pylogixGitHubRead/Write data from Allen Bradley Compact/Control Logix PLC's - dmroeder/pylogix

Je suis sous Windows, pas sous Linux. Et je veux dire à PyCharm "va utiliser cette lib, là, dans le répertoire XYZ", pour mon projet.
C'est faisable sûrement, mais comment cheeky La doc ne m'a l'air faite que pour nunux ^^

Merci d'avance.

28

As-tu créé un virtualenv ? (quand tu définis un interpréteur Python dans ton projet PyCharm, il te propose de créer un virtualenv, dans lequel il faudra installer tes libs — PyCharm propose également l'interface pour ajouter une lib)

Les environnements virtuels Python : venv, virtualenv et virtualenvwrapperSam & MaxQuand on commence beaucoup programmer, on accumule rapidement plusieurs projets en cours de développement sur sa machine. Certains vieux, certains récents, qui utilisent tous des bibliothèques simi…
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

29

pycharm m'indique ça :
tromb Fichier joint : ydMS

Donc apparemment, "il y a venv". Je sais pas quoi en faire ^^
Et il y a bien une quelque chose qui parle de lib externe, mais aucun clic droit ne me propose d'en ajouter une. Il va valloir travailler pour y arriver, c'est fou ça quand même embarrassed

30

C'est dans paramètres > project > project interpreter (avec en bas un "+")
fD76
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant