programmation en python

5 participants

Aller en bas

programmation en python Empty programmation en python

Message par Invité Ven 01 Déc 2017, 13:15

je propose de commencer un fil sur ce langage devenu commun et incontournable et d'y poser vos trouvailles ou vos bouts de code le cas échéant

comme je compte l'apprendre de zéro ou presque car je n'en ai que quelques notions vagues et ou super précises, pour une fois je me dis que commencer de zero est sans doute éducatif aussi


premiere etape, de quoi s'agit il exactement, python c'est un serpent ?  et pourquoi py ?

-------

1- non python n'est pas un serpent, ni un avatar de monty quoique;; /-°

"Guido Van rRssum programmeur hollandais ..en 1989, profitant d’une semaine de vacances durant les fêtes de Noël, il utilise son ordinateur personnel8 pour écrire la première version du langage. Fan de la série télévisée Monty Python's Flying Circus, il décide de baptiser ce projet Python"




http://apprendre-python.com/


"Python c'est quoi?

Python est un langage de programmation inventé par Guido van Rossum. La première version de python est sortie en 1991.

Python est un langage de programmation interprété, c'est à dire qu'il n'est pas nécessaire de le compiler avant de l'exécuter. Si vous avez déjà touché un peu à la programmation, vous verrez que ce langage possède une certaine poésie. Les programmeurs s'amusent souvent à trouver la manière la plus jolie/efficace d'écrire une suite d'instructions. Rares sont ceux qui critiquent la logique Python -contrairement à javascript par exemple-.
Que fait Python?

Python est à la fois simple et puissant, il vous permet d'écrire des scripts très simples mais grâce à ses nombreuses bibliothèques, vous pouvez travailler sur des projets plus ambitieux.

* Web: Aujourd'hui python combiné avec le framework Django est un très bon choix technologique pour des gros projets de sites internet.

* Système: Python est également souvent utilisé par les admin système pour créer des tâches dites répétitives ou simplement de maintenance. D'ailleurs si vous voulez créer des applications java en codant en python, c'est possible grâce au projet Jython.
Pourquoi préférer Python aux autres langages?

Python est un langage facile à apprendre et son code est plus lisible, il est donc plus facile à maintenir. Il est parfois jusqu'à 5 fois plus concis que le langage Java par exemple, ce qui augmente la productivité du développeur et réduit mécaniquement le nombre de bugs.

Python est également utilisé dans les milieux scientifiques, par exemple la bioinformatique. Des librairies sont disponibles pour ce domaine comme le module biopython .

Il existe également des bibliothèques facilitant la création de jeux vidéo en 2D (et 3D) exemple: pyGame ."

--------

les programmes écris en python  ont bizarrement ;-) l'extension ... py ..

--------


Dernière édition par ZebMcKay le Ven 01 Déc 2017, 13:30, édité 1 fois

Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Invité Ven 01 Déc 2017, 13:21

https://www.codecademy.com/learn

J'ai entamé les cours de python, je maîtrise un peu le perl, c, basic, php, sql,.... mais je vais m'y mettre, c'est à la mode.

Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Invité Ven 01 Déc 2017, 13:23

en quoi python est il utile ?

https://fr.wikipedia.org/wiki/Python_(langage)

"Python est un langage de programmation objet, multi-paradigme et multiplateformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.

Le langage Python est placé sous une licence libre proche de la licence BSD4 et fonctionne sur la plupart des plates-formes informatiques, des supercalculateurs aux ordinateurs centraux5, de Windows à Unix avec notamment GNU/Linux en passant par macOS, ou encore Android, iOS, et aussi avec Java ou encore .NET. Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser.

Il est également apprécié par certains pédagogues qui y trouvent un langage où la syntaxe, clairement séparée des mécanismes de bas niveau, permet une initiation aisée aux concepts de base de la programmation6."


premier avantage


on apprend donc que ce langage peut être utilisé dans divers environnements et sur diverses machines, pc mac etc tablette , smartphone et même calculatrice avec la calculatrice numworks francaise

https://www.numworks.com/fr/


deuxieme avantage

il est libre, cela signifie que cela ne coute pas un centime pour l'installer chez soi et programmer et qu'on peut échanger plus facilement des codes entre copains

troisieme avantage c'est un langage dit de haut niveau


https://fr.wikipedia.org/wiki/Langage_de_haut_niveau


soit donc

" langage de programmation orienté autour du problème à résoudre, qui permet d'écrire des programmes en utilisant des mots usuels des langues naturelles"

quatrieme avantage

https://fr.wikipedia.org/wiki/Typage_dynamique

"Le typage dynamique consiste à laisser l'ordinateur réaliser cette opération de typage « à la volée », lors de l'exécution du code, contrairement à certains langages statiquement typés qui demandent au programmeur de déclarer expressément, pour chaque variable qu'il introduit dans son code, son typage. Les langages statiquement typés disposant d'Inférence de types n'imposent pas cet effort supplémentaire."

là c'est un peu plus complexe à expliquer, dans certains langages on commence par faire une espece de table des matieres ou on déclare les variables, leurs types, bref tous les éléments qu'on utilisera apres dans le code

ici pas besoin de se prendre la tete avec une liste préalable des variables à utiliser, le prog gere cela comme un grand

exemple en langage c

...
int a;
a = 5;
...

a est une valeur entière et on lui donne la valeur initiale de 5

en python on le fait lors du code lui meme



"(let ((a 5))
(when (numberp a)
(print "a est un nombre")) ...)

De plus, en cours d'exécution, 'a' pourrait recevoir un objet de type différent, si le programme l'autorise :

(let ((a 5)
(setf a "je suis une chaîne") ...)
"

ainsi on peut à tout moment changer le contenu et la definition des variables, c'est tres pratique quand il s'agit de mettre dans une variable le résultat d'un calcul précédent






Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Invité Ven 01 Déc 2017, 13:24

Switch71 a écrit:https://www.codecademy.com/learn

J'ai entamé les cours de python, je maîtrise un peu le perl, c, basic, php, sql,.... mais je vais m'y mettre, c'est à la mode.

cool :-)

et s'il est à la mode c'est qu'il est probablement aussi utile à des tas de choses :-)


Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Invité Ven 01 Déc 2017, 13:29

Je vais écrire un bot qui répondra à ma place sur ZC mais avec des trucs plus intelligent, Stauk va surement m'aider pour le deep learning, tout ça....

Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Invité Ven 01 Déc 2017, 13:39

n'étant pas un robot et étant plutot simple d'esprit je crains que je n'utilise un langage simple voir basique, désolé donc :-)

pis y a plein de trucs compliqués si on veut

par exemple

python est aussi dans le monde de la programmation orientée "objets"

https://fr.wikipedia.org/wiki/Programmation_orient%C3%A9e_objet


on lit

"La programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique élaboré par les Norvégiens Ole-Johan Dahl et Kristen Nygaard au début des années 1960 et poursuivi par les travaux de l'Américain Alan Kay dans les années 1970. Il consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs"


en gros si je pige bien, au lieu de faire un très très long programme sans fin

la programmation objet consiste à assembler des blocs lego en quelque sorte, des morceaux de codes qui dialoguent entre eux

par exemple j'ai un bloc lire à l'écran, un bloc calcul, un bloc afficher, un bloc imprimer et tous ces blocs mis ensemble forment un programme

le fun est que si vous vous heurtez à un module, bloc que vous n'arrivez pas à coder, ptete que d'autres plus smarts que vous l'ont fait

du coup "mon" logiciel ne le sera que sur les morceaux, blocs, modules que j'aurais codés moi et ptete même que l'intelligence de programmation sera comme en lego de pondre un truc que personne n'avait pensé assembler avant sans pondre presque aucune ligne de code, mais bon je diverge un peu

soyons plus explicite

programmation en python Progra10





Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Invité Ven 01 Déc 2017, 13:47

enfin le pyhton utilise aussi un ramasse miettes, vachement doué le serpent, mais ou sont ses mains ?

hein comment ?

dis papa je peux utiliser ton programme pour nettoyer les mies de pain ? dis stp stp ?



https://fr.wikipedia.org/wiki/Ramasse-miettes_(informatique)

en fait c'est pas loin... le programme informatique en règle générale ne vit pas sa vie tout seul isolé comme un banal surdoué, nan nan

il dialogue monsieur, oui oui avec le système, ce que les anglo saxons appellent l'os, operating systeme ou systeme d'exploitation, à ne pas confondre avec un systeme d'esclavage

meme si quelque part le programme est censé s'adapter à l'os et non l'inverse

mais quelle chance python le fait sans qu'on ne doive strictement rien y piger à l'os c'est ti pas bo ?

en raspberry py, un enfant de 7 ans peut coder en python sans se soucier de quoi que ce soit

https://www.raspberrypi.org/magpi/

bien revenons

"Un ramasse-miettes, ou récupérateur de mémoire, ou glaneur de cellules (en anglais Garbage Collector, abrégé en GC), est un sous-système informatique de gestion automatique de la mémoire. Il est responsable du recyclage de la mémoire préalablement allouée puis inutilisée."

en gros quand il fonctionne le programme se charge dans la mémoire vive , la ram de l'ordinateur , mémoire gérée par l'os donc

il s'exécute tranquillement, fait ce qu'on lui a demandé et continue donc d'utiliser la mémoire

sauf que gros faineant, le programme ne nettoie pas nécessairement ses crasses et finit par occuper beaucoup, beaucoup de mémoire

la vache denoncetonporc épique

sauf que certains langages, pyton inclus ben ils sont propres monsieur, si si , ils nettoient leurs crasses en mémoire eux !

on appelle cela donc très visuellement le ramasse miettes, les miettes en l'occurence étant des morceaux de memoire utilisées à un moment donné par le programme puis plus nécéssaire du tout

ce faisant le programme est non seulement moins gourmant en mémoire mais de ce fait aussi plus stable avec les os capricieux genre windows 10 ou autre

en gros je ne fais que passer et j'efface mes traces

cela permet aussi de le faire tourner ce programme dans des espaces parfois tres reduits et ou sur des machines très petites comme un raspberry

ne vous y trompez pas le programme peut etre très long et sophistiqué aussi , il est juste économe et propre sur lui

Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Meryn Sam 02 Déc 2017, 21:04

ZebMcKay a écrit:et s'il est à la mode c'est qu'il est probablement aussi utile à des tas de choses :-)

Il est surtout très apprécié des scientifiques et mathématiciens pour avoir une syntaxe très simple et assez souple tout en étant portable et très rapide à compiler, donc idéal pour les petits programmes. Python supporte aussi l’exécution de code en ligne de commandes.
Meryn
Meryn

Messages : 34
Date d'inscription : 16/11/2017
Age : 27
Localisation : Amiens

Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Invité Lun 04 Déc 2017, 11:10

merci Meryn :-)

comment on installe python ?

en fait on peut simplement installer python directement ou avec une interface plus complexe mais offrant des possibilités plus souples


https://www.python.org/downloads/


https://fr.wikihow.com/installer-Python

sinon on a ce qu'on appelle des ide

http://noeticforce.com/best-python-ide-for-programmers-windows-and-mac

PyCharm, Pydev, Emacs or Eric etc

pycharm existe en version free et commerciale



spyder aussi

https://github.com/spyder-ide/spyder

https://www.datacamp.com/community/tutorials/data-science-python-ide

etc

comme il est dit

"What’s the best IDE for you?

The answer is simple: that one which makes your life easier and your work more comfortable."

en gros on installe à la fois le langage lui même en installant python mais on installe aussi une ide, une interface qui facilite le codage dans un environnement avec des fenetres plutot qu'une console de type dos ou autre en cli

pour le dire clairement on peut tres bien commencer à apprendre le python en installant juste le langage et en le lancant dans une console à l'ancienne sans fenetres

et ou programmer dans un simple éditeur de texte et ou une interface plus évoluée

en gros c'est un peu comme taper dans notepad ou word sur pc, les fonctions et options sont forcément plus riches dans word

une ide est donc plus riche qu'une simple console

par ailleurs cela permet d'éditer le code, de le sauver etc dans de meilleurs conditions

le choix de l'ide est à votre convenance en sachant que certains utilisent les couleurs pour souligner vos codes, et que d'autres offrent des facilités avec la liste des mots reconnus par le langage en quelque sorte

pour commencer pycharm ou spyder sont très bien

quelques tutos


https://pythonhosted.org/spyder/installation.html

http://www.prepas.org/2013/Info/DocumentsIG/install-python-windows.pdf





Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Invité Lun 04 Déc 2017, 11:16

on comprend aussi qu'existent des "super ide"

"Spyder is already included in these Python Scientific Distributions:

Anaconda
WinPython
Python(x,y)"


celles ci incluent python , l'ide et d'autres brols

la plus connue est anaconda

https://www.anaconda.com/download/

incluant des "dependencies"

on en causera plus tard, en gros python seul c'est bien mais il existe des librairies, des ajouts très utiles , voire indispensable , ce que l'on appelle des dépendances, dependencies

http://python-packaging.readthedocs.io/en/latest/dependencies.html

cela semble de l'hebreux mais en realité il est assez simple de les installer , on cotoie ici l'univers linux et sa maniere d'installer et de mettre à jour les programmes installés

faudra ptete faire une digression rapide sur ces choses

le brut final etant d'avoir le python installé dans son nid, un ide , une interface propre sur elle et tous les éléments complémentaires les plus utiles en moyenne

anaconda , encore un serpent.. la vache... facilite tout cela

http://www.southampton.ac.uk/~fangohr/blog/installation-of-python-spyder-numpy-sympy-scipy-pytest-matplotlib-via-anaconda.html

et est donc la solution la plus simple pour installer python tout dans tout



Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Invité Lun 04 Déc 2017, 11:17

je le poste avant de perdre le lien

un cours complet et gratuit super bien fait en python, je me baserai la dessus pour avancer dans un premier temps

https://inforef.be/swi/download/apprendre_python3_5.pdf

Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Invité Lun 04 Déc 2017, 11:21

C'est vrai que c'est un langage très pratique, mais n'éludons pas non plus ses inconvénients. De mon coté il ne sert que de prototypage : il n'est pas vraiment rapide (entre autres parce que pas compilable, ou du moins avec des compilos qu'il est très difficile, voire impossible à maîtriser et à comprendre dans le détail). Idem en terme de gestion de la RAM etc.

Pour résumer : il ne sert pas "à tout", c'est comme d'habitude, selon ce que l'on veut faire, l'un ou l'autre langage est plus adapté...


Dernière édition par hobb le Lun 04 Déc 2017, 11:28, édité 1 fois

Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par ortolan Lun 04 Déc 2017, 11:28

.


Dernière édition par ortolan le Sam 30 Déc 2017, 23:07, édité 1 fois
ortolan
ortolan

Messages : 13579
Date d'inscription : 31/07/2016
Localisation : 404 Not Found

Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par boule-d-ombre Ven 08 Déc 2017, 07:02

je me suis mis à python justement suite à un projet que j'ai sur un rapsberry c'est vrai que la plupart des commandes sont simples même si quand on passe de c++ à python des différences peuvent être gênantes. déjà le fait que les variables n'enregistrent que la localisation d'une donnée et non la donnée elle même(ce qui rend le stockage de données parfois problématique). la programmation orientée objet ou l'utilisation des classes est un point qui simplifie la programmation de manière très sensible. et la librairie tkinter bien qu'incomplète donne déjà de bons moyen en matière de 'graphismes', sinon il me semble que blender permet de mélanger 3d et python pour ceux intéressé par la 3d
boule-d-ombre
boule-d-ombre

Messages : 1398
Date d'inscription : 02/01/2012

Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Invité Sam 09 Déc 2017, 19:46

Blender est scriptable en python, tout comme paraview, etc...

Invité
Invité


Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par Badak Ven 15 Déc 2017, 06:39

Ce que j'aime le plus est que TOUT ou presque a maintenant un "wrapper" pour le python. J'en ai oublié le C#.

Pour MySQL  : mysql-python

Pour la programmation bluetooth : pyblueZ
Pour le MQTT (qui est un genre de protocole réseau pour faire communiquer plusieurs "subscribers" avec plusieurs "publishers") : Paho-mqtt

Tout ce qu'on pourrait faire sur le Bash, on peut le faire sur Python.

Pour la programmation Android (ou des Iphone):  Kivy/ Plyer/ Buildozer  Même plus besoin d'apprendre le Java pour jouer avec les téléphones !! Toutes les classes Java sont accessibles en Python au moyen de PyJnius.  (à prononcer comme genius )

Pour la vision par ordinateur:   OpenCV  
Pour le langage naturel :  NLTK
Évidemment pour le Machine learning :  tensorflow,  keras, tflearn

hobb a écrit:....il n'est pas vraiment rapide (entre autres parce que pas compilable, ou du moins avec des compilos qu'il est très difficile, voire impossible à maîtriser et à comprendre dans le détail)...
Je suppose que "ça dépend", mais pour la "plupart" des librairies, les scripts écrits en python utilisent des "wrappers" et sont directement compilables en C++, ou bien "compilé" en un Bytecode interprétable par une VM dans le genre de Java . Bref ce n'est pas plus mal que d'écrire directement en C++ ou en Java (respectivement ).

Même Numpy, il me semble qu'ils utilisent des implémentations vectorielles qui ne sont pas plus lentes que celles du fortran (qu'ils disent, mais je n'ai rien mesuré. ). Tu vois vraiment une grande différence ? Je pensais surtout que c'était par tradition que le calcul de haute performance persistait à utiliser le fortran.



Switch71 a écrit:Je vais écrire un bot qui répondra à ma place sur ZC mais avec des trucs plus intelligent, Stauk va surement m'aider pour le deep learning, tout ça....

Je voudrais bien faire ça un jour aussi..  Et on pourra simuler des engueulades entre chatbots pour faire virer dingues les modérateurs.
Ensuite on leur vendra (très cher) un programme capable de détecter les chatbots qui trollent.  C'est une industrie d'avenir..
Badak
Badak

Messages : 1230
Date d'inscription : 02/12/2011
Localisation : Montréal

Revenir en haut Aller en bas

programmation en python Empty Re: programmation en python

Message par stv82 Sam 23 Déc 2017, 12:11

Merci à Zebulon d'avoir ouvert ce sujet Smile
Ça faisait un moment que je voulais faire tourner aussi sans arriver à me lancer.

Bon sinon, je suis d'accord avec Badak !

La densité de librairies est vraiment extra, c'est un gros gros point positif du Python.
Et puis cette simplicité d'installation quelle que soit la plate-forme (Linux, Windows, Mac)...
Avec un python bien configuré et la commande pip installée (c'est très facile sous Linux, un peu plus chiant sous Windows selon le packaging que l'on prend, sauf si on a cygwin bien sûr), installer une dépendance, par exemple numpy, se résume souvent à ouvrir un prompt de commande et faire :

Code:
pip install numpy

Pour essayer de résumer, je dirais que Python est en particulier trop bien pour les gens qui ont souvent besoin/envie de bidouiller rapidement un truc pour des besoins ponctuels.
Pas nécessairement besoin de main(), de fonction() ou quoi, python s'adapte assez à l'utilisateur.
Il faut juste comprendre que le parsing des blocs est basé sur l'indentation, et que là dessus il est intransigeant.

Côté négatif, si le code est cross plate-forme par nature, c'est souvent assez galère de faire des installeurs "grand public" pour toutes ces plates-formes. Mais ça se fait. Par exemple, le projet Vim que j'avais évoqué dans un autre message du forum est basé sur Python.

Si vous cherchez un éditeur pour faciliter l'écriture, je vous recommanderais bien PyCharm Community Edition (version gratuite pour un usage open-source/non commercial) qui est basé sur les IDE JetBrains (comme Android Studio, PHPStorm etc.).

À essayer si vous avez la motivation, mais c'est vraiment l'un des langages les plus agréables à prendre en main selon moi.

stv82

Messages : 501
Date d'inscription : 28/01/2015
Localisation : Alpes du Nord

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum