IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Démarrer avec Python


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Points : 11
    Points
    11
    Par défaut Démarrer avec Python
    Bonjour,

    J’ai essayé de trouver des réponses à mes questions sur les FAQ et autres documentations mais les réponses restent incomplètes. A priori, je dois être le premier débutant à poser ces questions .

    J’ai compris la coexistence des versions Python 2.x et 3.x que l’on peut télécharger sur le site python.org pour les différentes plateformes.
    • Alors à quoi servent les mises en œuvre (implantations) comme CPython ?
    • Pourquoi un terminal interactif comme IPython ?
    • Quelle est la différence entre IDLE et Spyder ? Car on dit que Spyder est un environnement de travail. Or, il n’est pas dans la liste des IDE pour Python (http://en.wikipedia.org/wiki/Compari...onments#Python)


    Quant aux distributions, si j’ai bien compris. Elles regroupent un ensemble d’outils avec différents environnement de travail.

    Désolé pour ces questions certainement naïves mais dont les réponses me permettraient d’éclairer mes choix.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par visiteur13 Voir le message
    Alors à quoi servent les mises en œuvre (implantations) comme CPython ?
    mises en oeuvre = implémentations : http://fr.wikipedia.org/wiki/Impl%C3%A9mentation

    CPython http://fr.wikipedia.org/wiki/CPython est l'interpréteur bytecode de Python, il n'y a aucun intérêt à se plonger dans son implémentation pour utiliser Python normalement.

    Peut-être vouliez-vous parler de Cython ? http://fr.wikipedia.org/wiki/Cython ainsi que http://cython.org/

    Cython permet d'augmenter les capacités du langage Python grâce à des fonctionnalités écrites en C (voire en C++).

    Python est un langage assez lent au regard de langages comme C ou C++. Il arrive parfois que l'on ait besoin de recourir à des routines en C pour aller plus vite.

    Mais cela reste du domaine du rare - voire très rare - pour un développeur qui débute avec Python.

    A moins que vous ne plongiez direct dans le Big Data et les clusters de calcul massifs ?

    Pourquoi un terminal interactif comme IPython ?
    IPython est une version améliorée de la console interactive Python d'origine.

    Si vous débutez dans l'univers Python, ne vous sentez pas obligé d'attaquer tout de suite avec le sophistiqué : commencez à faire simple avec la console Python d'origine, vous aurez bien le temps de vous lancer ensuite dans des choses plus exigeantes.

    Quelle est la différence entre IDLE et Spyder ? Car on dit que Spyder est un environnement de travail. Or, il n’est pas dans la liste des IDE pour Python (http://en.wikipedia.org/wiki/Compari...onments#Python)
    Qu'il n'y soit pas ne veut strictement rien dire. Il relève de la veille technologique des rédacteurs de mettre à jour leurs articles.

    Bah, vite fait : IDLE est fourni d'office avec l'installation du langage Python, il est simple, dépouillé, assez pratique pour débuter, une bonne béquille pour faire des tests Python vite fait, il est aussi un véritable passe-partout (fort bavard ) entre plateformes (Linux, Windows, MacOS, etc), etc.

    Spyder de Google ? Ben - euh - c'est une question de goût ?

    Spyder : https://code.google.com/p/spyderlib/

    Il existe pléthore d'EDI http://fr.wikipedia.org/wiki/Environ...%C3%A9gr%C3%A9 pour Python et pour d'autres langages encore.

    Ce qui motivera votre choix pour tel ou tel EDI relèvera surtout de vos affinités avec la philosophie de programmation proposée par l'EDI et par l'équipe qui développe cet EDI.

    Voir ceci : http://python.developpez.com/actu/59...es-EDI-Python/

    Quant aux distributions, si j’ai bien compris. Elles regroupent un ensemble d’outils avec différents environnement de travail.
    Oui, m'sieur. https://wiki.python.org/moin/PythonDistributions

    Les distributions regroupent des modules (et des packages) Python qui répondent à des domaines précis pour faciliter le travail des personnes souhaitant s'en servir mais n'étant pas forcément elles-mêmes des spécialistes Python - c'est le cas par exemple des chercheurs scientifiques qui disposent de distributions telles que EPD, Canopy ou encore Anaconda qui leur permettent de gagner un temps précieux.

    Désolé pour ces questions certainement naïves mais dont les réponses me permettraient d’éclairer mes choix.
    Y a pas de mal. Nous sommes là pour ça.

    @+.

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup pour ces réponses.

    Néanmoins, j'avais bien compris que implémentations était un anglicisme courant pour dire mise en œuvre. Mais, même si c'est inutile pour moi de l'utiliser, puis-je savoir à quoi servent ces implémentations ? Comme CPython "CPython est l'implémentation de référence du langage Python. C'est un interpréteur de bytecode écrit en langage C" ou Stackless Python, Jython, IronPython, PyPy...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par visiteur13 Voir le message
    Mais, même si c'est inutile pour moi de l'utiliser, puis-je savoir à quoi servent ces implémentations ? Comme CPython "CPython est l'implémentation de référence du langage Python. C'est un interpréteur de bytecode écrit en langage C"
    C'est une question d'optimisation de l'exécution du code.

    A l'exécution d'un script Python, ce dernier est compilé par le langage : Python "réduit" le code en petits éléments appelés tokens (jetons) dans un processus qui s'appelle semi-compilation en bytecode (autre équivalent de token, mais numérique et limité à 8 bits), qui sert d'intermédiaire pour les machines virtuelles, non exécutable directement par le processeur.

    Pour la semi-compilation voir http://fr.wikipedia.org/wiki/Compilateur et http://fr.wikipedia.org/wiki/Bytecode

    Une fois le script réduit, les jetons sont transmis à l'implémentation du langage c'est-à-dire le "moteur" qui va exécuter les actions correspondant à chaque jeton.

    L'implémentation la plus courante de Python est CPython (le langage Python implémenté grâce au langage C).

    L'intérêt de procéder de la sorte est assez évident : si dans une boucle vous appelez 1000 fois une fonction qui a un nom de 50 caractères de long, un interpréteur devrait théoriquement analyser 1000 fois les 50 lettres du nom pour identifier la fonction puis ensuite exécuter le code de cette fonction.

    A contrario, si vous semi-compilez ce nom en le remplaçant par un bytecode - mettons 0xF0 - qui dit à la machine virtuelle "attention, l'adresse qui va suivre correspond à une fonction" puis vous faites suivre ce bytecode de l'adresse où se trouve le code de votre fonction (lui-même semi-compilé), vous n'avez plus besoin de perdre votre temps à identifier 1000 fois votre fonction avec son nom de 50 caractères de long => vous allez droit au but, vous appelez le bloc de code se trouvant à l'adresse correspondant à votre fonction, c'est un gain de temps appréciable.

    Lorsque vous exécutez simplement un script Python directement, sans l'importer, son code est semi-compilé en RAM puis exécuté par CPython (par exemple).

    Lorsque vous incorporez un module Python via import mon_module, le compilateur Python semi-compile le fichier mon_module.py en bytecode puis enregistre le résultat semi-compilé dans un fichier mon_module.pyc de sorte qu'au prochain tour, il suffira au compilateur Python d'aller chercher ce fichier et de le passer à l'implémentation du langage (CPython) directement => encore un gain de temps, on réduit un fichier module en équivalent bytecode puis on le stocke dans cet état pour ne pas avoir à recommencer la prochaine fois.

    Comme statistiquement parlant un module n'est pas censé varier souvent dans son code, le pari est plutôt gagnant.

    Vous pouvez d'ailleurs forcer la semi-compilation d'un script en tapant dans une console :

    Code shell : Sélectionner tout - Visualiser dans une fenêtre à part
    python -m py_compile mon_script.py

    Quoiqu'il en soit, vous ne serez jamais mieux servi que par ceux qui ont fait le langage.

    Voir la doc officielle Python sur le langage lui-même : https://docs.python.org/3/reference/introduction.html

    @+.

  5. #5
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    Oui , mais pour le langage C(en cours impératif) , il vaut déjà maitriser le compilation gcc : en créant un fichier sous gedit , et le nommer par exemple toto.c , et ensuite dans la console taper gcc toto.c .
    _""""Cats have a big heart ^^ unlike some bad people (whose will never change in their brain) """

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Points : 11
    Points
    11
    Par défaut
    Merci pour cette réponse précise tarball69. Je crois que j'ai bien compris.

    Kurodiam : je ne comprends pas pourquoi il faudrait utiliser ce compilateur C en particulier (gcc) et cette éditeur de texte en particulier (gedit).

  7. #7
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    C'est celui que je trouve le plus simple à utiliser pour l'instant .
    Alors que Cython n'est pas facile à manœuvrer pour des débutants , j'avais essayé de l'installer sous Windows mais le résultat : plusieurs heures perdues pour rien et la documentation n'est pas très fournie , à part ce lien là mais sous Fedora http://blog.fedora-fr.org/metal3d/po...s%C3%A9-Python
    _""""Cats have a big heart ^^ unlike some bad people (whose will never change in their brain) """

  8. #8
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Points : 11
    Points
    11
    Par défaut
    Je comprends. Tu confonds CPython et Cython . Ma question était sur le premier, pas le deuxième.

    Merci tout de même pour ce complément d'information.

  9. #9
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par visiteur13 Voir le message
    Je comprends. Tu confonds CPython et Cython . Ma question était sur le premier, pas le deuxième.

    Merci tout de même pour ce complément d'information.

    euh....ok !En fait , l'année prochaine , je devrais faire le langage impératif en langage C donc je dois déjà connaitre le minimum de connaissances pour manœuvrer correctement mon bateau . Mais comme notre prof stipule le compilateur gcc et ben faut suivre l'ordre logique quoi
    _""""Cats have a big heart ^^ unlike some bad people (whose will never change in their brain) """

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment démarrer un programme.win32 avec python
    Par mr maggoo dans le forum Bibliothèques tierces
    Réponses: 4
    Dernier message: 19/12/2006, 10h49
  2. Les 128 derniers bits d'un fichier en ligne avec Python ?
    Par ecocentric dans le forum Réseau/Web
    Réponses: 7
    Dernier message: 26/09/2005, 12h40
  3. [SYBASE] comment bien démarrer avec ???
    Par Emmanuel Lecoester dans le forum Sybase
    Réponses: 1
    Dernier message: 04/05/2005, 17h24
  4. Démarrer avec PostgreSQL
    Par Neuromancien2 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/01/2004, 21h45
  5. [IB v7.1][C#][ADO.NET] Démarrer avec IB 71
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 14
    Dernier message: 05/08/2003, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo