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ébutant : Python et Python (x,y) ?


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Points : 103
    Points
    103
    Par défaut Débutant : Python et Python (x,y) ?
    Bonjour à tous,

    Je ne connais absolument pas Python ..
    Mon expérience de la programmation remonte à longtemps et s'arrête à Fortran et C, plus certains assembleurs anciens

    Je cherche un langage moderne qui me permette de convertir assez facilement des programmes scientifiques anciens que j'ai écrits il y a longtemps en Fortran ...
    Évidemment ces programmes serviront de base, je ne cherche pas à les réutiliser tels qu'ils sont et je compte bien les refondre entièrement pour les moderniser.

    Donc je cherche quelque chose pour remplacer le Fortran.

    J'ai survolé les possibilité de Matlab et Octave ...

    Je survole en ce moment Python pour me faire une petite idée ...
    J'ai installé Python 2.6 et après quelques essais, je suis assez séduit par ce langage ...

    Je viens de découvrir l'existence de Python (x,y) ...

    Je me pose la question des différences ...
    Est ce que Python (x,y) est une extension de Python?

    Malheureusement, je suis assez pressé par le temps pour mon projet et je préfèrerais éviter les errements ...

    Pouvez vous, svp, me guider dans mon choix en sachant qu'ultérieurement je voudrais développer une interface graphique assez complexe?

    Merci d'avance à tous ceux qui pourront m'aider.

    Bonne soirée à tous.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    PythonXY c'est Python + une foule de bibliothèques scientifiques et techniques qui font de la chose une sorte de couteau suisse pour l'ingénieur et le chercheur (le non informaticien scientifique qui utilise l'informatique ).

    Est ce que Python (x,y) est une extension de Python?
    On peut dire cela comme çà!
    Voir à l'URL précédente toutes les bibliothèques que cela intègre.

    Pouvez vous, svp, me guider dans mon choix en sachant qu'ultérieurement je voudrais développer une interface graphique assez complexe?
    PyQt, Qt sont mes préférés et ont aussi les faveurs de PythonXY (qui vient aussi avec WxPython et PyGTK).

    Je cherche un langage moderne qui me permette de convertir assez facilement des programmes scientifiques anciens que j'ai écrits il y a longtemps en Fortran ...
    Python n'a pas l'ambition de remplacer qui que ce soit...
    Il est juste assez bon pour vous permettre d'utiliser (éventuellement) votre vieux code Fortran depuis un langage plus évolué, plus simple.

    C'est une de ses forces: ce n'est pas avec un langage interprété que vous pourrez tirer les meilleures performances des ressources machines... Et puis pourquoi ré-écrire plutôt qu'utiliser ce qui existe déjà?

    Bon courage,
    -W



    Évidemment ces programmes serviront de base, je ne cherche pas à les réutiliser tels qu'ils sont et je compte bien les refondre entièrement pour les moderniser.[/QUOTE]

    Pour te former, les cours et tutoriels Python https://python.developpez.com/cours/
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Et puis pourquoi ré-écrire plutôt qu'utiliser ce qui existe déjà?
    Bonsoir et merci pour les renseignements ...

    Et pour répondre à la question, c'est pour les passer à des jeunes qui ne veulent pas entendre parler de Fortran ...

    Je veux en profiter aussi pour les nettoyer, les étendre et mieux les documenter

    Bonne soirée

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par jlg_47 Voir le message
    Et pour répondre à la question, c'est pour les passer à des jeunes qui ne veulent pas entendre parler de Fortran ...

    Je veux en profiter aussi pour les nettoyer, les étendre et mieux les documenter
    Nettoyez le code, documentez le, essayez d'utiliser des bibliothèques standard... Réalisez des tests de non-régression, développez des API qui rendre ces codes utilisables depuis Python...

    De toutes façons, le calcul numérique est "compliqué", si vous jeunes doivent y mettre le nez dedans pour comprendre comment çà fonctionne, ce n'est pas le langage de programmation qui va rendre la chose plus aisée ...
    Et çà fait longtemps que nous n'ouvrons plus le capot de nos bagnoles sans que ce soit un drame...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Points : 103
    Points
    103
    Par défaut
    Bonjour Wiztricks,

    Merci pour tous ces conseils, je commence à voir un peu plus clair ..

    Hormis C et Fortran, je ne connais rien d'autres de façon correcte.

    Pour les codes dont je parle, la dernière version tournait sous Visual Fortran de Digital (devenu Compaq par la suite) et avec une interface graphique développée en Visual Fortran.
    Tout était fait avec un seul outil qui permettait d'écrire la partie mathématique, mais aussi de créer une interface graphique le tout avec un IDE intégré assez convivial.

    Le compilo et l'IDE s'installaient en quelques minutes sur la machine, on pouvait les prendre en main en quelques heures et il n'y avait plus qu'à coder.

    Je cherche donc un truc du même genre mais moderne au goût du jour, maintenu et facile à se procurer, même si c'est payant.

    Je n'ai pas trop envie de mélanger différents trucs

    Difficile de se décider dans une voie ou une autre sans connaitre.
    Est ce qu'à votre avis, PyQt conviendrait?

    Il y a bien le problème langage compilé/interpréteur, mais les codes Fortran tournaient sur un 80286 à 8Mhz, donc je peux espérer que l'équivalent avec un interpréteur sur une machine de 2010 devrait être acceptable en temps d'exécution.

    Bonne journée

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Pour les codes dont je parle, la dernière version tournait sous Visual Fortran de Digital (devenu Compaq par la suite) et avec une interface graphique développée en Visual Fortran.
    A mon sens, vous devriez pouvoir récupérer les algorithmes fortran et les compiler sous Gnu Fortran.
    La partie la plus délicate risque d'être l'IHM: je ne sais pas trop ce que fait la votre mais PythonXY vous donne une idée de la variablité des choix - qui ne sont pas spécifiques à Python d'ailleurs.

    Je cherche donc un truc du même genre mais moderne au goût du jour, maintenu et facile à se procurer, même si c'est payant.
    PythonXY me semble meilleur que Visual Fortrant que j'ai connu dans une ancienne vie. Problème avec les trucs Open Source: développer son expertise ou en trouver qui veulent bien travailler avec/pour vous...

    Difficile de se décider dans une voie ou une autre sans connaitre.
    Est ce qu'à votre avis, PyQt conviendrait?
    Ben à priori tout conviendrait.
    La question est:
    - Quelles sont les fonctionnalités et les composants de vos applications? C'est une description haut niveau.
    - Quels sont les détails importants? Ce sont les éléments "structurants" pas nécessairement "fonctionnels".
    - Autre question: Si on fait par une approche de refactoring est-ce qu'on dispose de jeux de tests suffisants?

    A partir de là est-ce qu'on a suffisamment d'informations pour dimensionner/chiffrer les coûts de développements? Quels sont les technologies qui pourraient nous aider à faire plus vite, plus sûr, plus pérenne?
    Faut-il prototyper?

    Il y a bien le problème langage compilé/interpréteur, mais les codes Fortran tournaient sur un 80286 à 8Mhz, donc je peux espérer que l'équivalent avec un interpréteur sur une machine de 2010 devrait être acceptable en temps d'exécution.
    J'ai passé pas mal de temps à rafraichir les vieux codes.
    Les anciens avaient un style de programmation et une rigueur parfois difficile à traduire dans des langages "modernes" et à expliquer aux jeunes.
    L'enfer est dans ces détails "structurants" que l'on n'a pas su déceler ou interpréter.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    Bonjour,

    j'utilise python(x,y) depuis quelques jours pour ma part, pour l'instant je n'ai rien vu d'embêtant à cela au contraire.

    seul petit bémol, c'est la version 2.6.2 de python, j'aurais préféré la 2.6.4 mais la foultitude de choses "livré" avec compense largement ce petit désagrément.

    j'aime aussi le fait qu'il soit packagé avec MinGW, pratique pour compiler des modules non purs.

    Citation Envoyé par jlg_47 Voir le message
    Je n'ai pas trop envie de mélanger différents trucs
    ça peut se comprendre, mais python est un remarquable langage de "glue", les interopérabilités rendues possibles grâce à de nombreuses approches (librairies standards ou tierces) sont énormes, notamment avec le C (API C, ctypes, swig, cython/pyrex) et le Fortran (f2py via scify).

    pyQt est un formidable exemple à cette interopérabilité, puisque le code sous-jacent est du C++. On peut ainsi exploiter la richesse et la performance d'autres langages

    et numpy le paquetage "matrice" de python est aussi écrit en C et Fortran.

    Je viens du monde Fortran aussi, je suis plus que ravi de ce que Python permet de faire

    Il y a aussi la distribution enthought (http://code.enthought.com/) très complète mais il y avait quelques détails qui me gênaient (plus proches du pinaillage que du réel argument vraiment constructif).

  8. #8
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Bonjour,



    Il me semble utile d’attirer ton attention, jlg_47, sur l’existence de nombreuses ressources scientifiques liées à Python.



    J’ose une comparaison audacieuse pour poser rapidement le paysage. Audacieuse et rapidement parce que je ne suis en réalité pas très au fait de ce domaine, que ce soit bien clair.

    PYTHON étendu avec l’extension NUMPY est l’analogue de FORTRAN:
    NumPy définit des arrays et des matrices qui permettent du calcul numérique efficace.

    Le module SCIPY est l’analogue de MATLAB, SCILAB, GNU Octave, R.
    SciPy est une bibliothèque d’algorithmes, qui a pour but d’unifier et fédérer les bibliothéques Python scientifiques (dixit Wikipedia)
    Comme MATLAB, elle comporte des algorithmes courants utilisables comme composants d’algorithmes élaborés,
    et aussi des outils d’une magnitude supérieure utilisables comme outils scientifiques de base.

    Il faut explorer les pages suivantes pour saisir la richesse de Scipy
    http://www.scipy.org/Topical_Software
    http://www.scipy.org/Cookbook
    et le bas de la page
    http://www.scipy.org/NumPy_for_Matlab_Users





    Voici des extraits d’un article de Gaël Varoquaux dans Linux Magazine Hors-série No 40 de janvier-février 2009, intitulé “Python comme langage scientifique“.


    Le fer de lance des applications scientifiques en Python est le module numpy qui introduit deux nouveaux types de données: tableaux et matrices. Les tableaux numériques multidimensionnels sont un élément essentiel d’un langage pour faire du calcul numérique. Fortran est le seul langage non spécialisé intégrant ce type numérique et cela explique son succès dans la communauté scientifique. (...) numpy fournit des fonctions mathématiques de base s’appliquant à ces tableaux, telles que sinus et exponentielles, mais aussi des fonctions pour les manipuler, les redimensionner, les concaténer. Ces fonctions sont implémentées directement en C et sont donc très rapides sur de gros tableaux. )...) Les tableaux fournis par numpy sont des objets très riches avec des moyens optimisés de les parcourir, (...) d’extraire une vue (...). L’API C de numpy permet de contrôler en détail la structure interne des tableaux pour, par exemple, la passer à des fonctions implémentées en Fortran ou en C.

    Toute cette richesse est cependant transparente sous Python, et le code ressemble a une suite d’opérations mathématiques, ce qui permet au scientifique de se concentrer sur celles-ci, plutôt que sur les structures de données ou la gestion de la mémoire.

    Le module scipy fournit une collection d’algorithmes numériques courants utilisant les tableaux et matrices numpy comme types de base. Beaucoup de ces algorithmes utilisent des algorithmes disponibles dans les bibliothèques scientifiques standards implémentées en C ou en Fortran, telles que LAPACK, LSODE, MINPACK et bien d’autres. En effet les problèmes de base rencontrés en calcul numérique sont souvent les mêmes. Malheureusement, les scientifiques ont tendance à perpétuellement réinventer la roue, car les types de données utilisés par les différentes bibliothèques en C ou en Fortran ne sont pas toujours les mêmes, ou bien parce que qu’ils ne maîtrisent pas bien l’utilisation de bibliothèques avec des langages compilés. (...) La bibliothèque est vaste et grandit régulièrement.





    Ce post est en fait motivé par la petite inexactitude émise par kango, qui pourrait entretenir une confusion
    et numpy le paquetage "matrice" de python est aussi écrit en C et Fortran.
    J’ai voulu attirer l’attention sur le fait que les matrices et les tableaux sont deux choses différentes dans NumPy, et j'ai ajouté le replacement de NumPy dans son contexte et quelques notions générales piquées à droite et à gauche:

    In MATLAB®,(...) Operations on the 2-D instances of these arrays are designed to act more or less like matrix operations in linear algebra.


    In NumPy the basic type is a multidimensional array. Operations on these arrays in all dimensionalities including 2D are elementwise operations. However, there is a special matrix type for doing linear algebra, which is just a subclass of the array class. Operations on matrix-class arrays are linear algebra operations.


    http://www.scipy.org/NumPy_for_Matlab_Users

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Points : 103
    Points
    103
    Par défaut
    Bonjour a tous,

    Et encore un grand merci.

    La question est:
    - Quelles sont les fonctionnalités et les composants de vos applications? C'est une description haut niveau.
    Pas très complexe, le but est de créer un jeu de construction à partir de briques qui contiennent chacune des équations .. Les briques sont différentes mais peuvent se connecter entre elles avec certains restrictions. Ces briques contiennent des équations dont on peut ajuster certains paramètres ... Et une fois qu'on a créé une construction, on peut la faire fonctionner et la comparer à une autre construction ..

    Par exemple: on construit une tour de raffinage (c'est très à la mode en ce moment ) en mettant des plateaux les uns au dessus des autres et après on fait fonctionner sa tour ..

    - Quels sont les détails importants? Ce sont les éléments "structurants" pas nécessairement "fonctionnels".
    Là j'ai du mal à répondre, je ne vois rien de bien particulier.

    - Autre question: Si on fait par une approche de refactoring est-ce qu'on dispose de jeux de tests suffisants?
    Oui !


    Bonne soirée

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Points : 103
    Points
    103
    Par défaut
    Bonjour à tous,

    Voilà je vous tiens informés ..

    J'ai réussi après plusieurs tentatives infructueuses à télécharger Python(x,y) 2.6.2.0; le site est très lent et le téléchargement s'est planté plusieurs fois avant la fin ...Mais cette nuit cela a marché

    Je l'ai installé et à première vue cela a l'air d'être bien sympathique ...

    Donc je vais m'y mettre dès que j'aurais fini de régler d'autres problèmes.

    Je suis allé sur les sites mentionnés par eyquem et j'ai trouvé aussi beaucoup de choses intéressantes du genre SimPy et autres.

    Merci encore à tous pour votre aide.

    Bonne journée

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

Discussions similaires

  1. python sans python
    Par kowal_2205 dans le forum Py2exe
    Réponses: 1
    Dernier message: 15/03/2009, 01h16
  2. [Débutant] Delphi ou Python
    Par Miyhang dans le forum Débuter
    Réponses: 7
    Dernier message: 12/06/2007, 01h59
  3. Lire un programme en python, sans python
    Par Guigiz dans le forum Py2exe
    Réponses: 15
    Dernier message: 09/06/2006, 21h11
  4. [swig] python->C->python, pointeur de fichier
    Par PyBio dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 10/11/2005, 15h50
  5. [OLD] FAQ Python / Sources Python - Participez
    Par Guigui_ dans le forum Contribuez
    Réponses: 8
    Dernier message: 14/06/2005, 20h20

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