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 :

le comportement de Python [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2015
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Octobre 2015
    Messages : 101
    Par défaut le comportement de Python
    Bonjour à tous et bonne année,

    Je suis un nouvel utilisateur de Python, (j'utilise surtout R) et je souhaite comprendre certains comportements de python qui me déroutent.
    J'utilise Python 3.7.9 avec PyCharm sous Windows 7 service pack 1.

    Le premier point concerne l'affichage du résultat d'un script, si par exemple j'affecte une valeur à la variable 'x' puis si je tape x, Python n'affiche aucun résultat, il faut toujours utiliser la fonction print(x) pour que le résultat s'affiche.

    Le deuxième point est que lorsque je clic sur run, Pyhton exécute tout le script à chaque fois et non la ligne où se trouve le curseur (contrairement à R).

    Je souhait savoir si ces comportements sont normaux dans Python (PyCharm) et est-il possible de les paramétrer selon mes préférences dans le menu 'settings' , ou est-ce que c'est un comportement anormal qui nécessite de réinstaller Python?

    Merci et a+

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Lou.lou Voir le message
    Bonjour à tous et bonne année,
    Salut, à toi aussi

    Citation Envoyé par Lou.lou Voir le message
    Le premier point concerne l'affichage du résultat d'un script, si par exemple j'affecte une valeur à la variable 'x' puis si je tape x, Python n'affiche aucun résultat, il faut toujours utiliser la fonction print(x) pour que le résultat s'affiche.
    Ben oui, il faut spécifiquement demander "affiche cette valeur" pour que la valeur soit affichée. De la même façon (autre exemple), il faut spécifiquement demander "multiplie-là par 2" pour qu'elle soit multipliée par 2. Jusque là, je ne vois pas tellement d'incohérence. Tu veux une action, tu dois alors appeller l'instruction déclenchant l'action.
    La vraie question serait plutôt "pourquoi penses-tu que taper x devait amener son affichage" ?

    Citation Envoyé par Lou.lou Voir le message
    Le deuxième point est que lorsque je clic sur run, Pyhton exécute tout le script à chaque fois et non la ligne où se trouve le curseur (contrairement à R).
    Je ne connais pas R. Ce que je sais, c'est qu'un script Python est un tout insécable et donc tu ne peux pas n'en exécuter qu'une partie.
    Exemple
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def carre(x): return x*x
     
    print(carre(5))
    Pour que ce script fonctionne, il faut que la fonction "carre" soit connue donc qu'elle ait été lue au préalable par l'interpréteur. Si tu commences le code à la ligne 3, ça ne marche plus.

    Cela peut-même aller plus loin. exemple
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def creation(x):
        if x == "carre":
            def carre(x): return x*x
        if x == "cube":
            def cube(x): return x*x*x
     
    creation("carre")
    print(carre(5))
    print(cube(5))
    Même exécuté entièrement le code ne fonctionnera pas car la branche de création de la fonction "cube" n'ayant pas été traitée, la fonction n'existe pas.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    On peut "faire du Python" en console ou dans un éditeur de texte.

    - en console, on tape ligne par ligne (ou bloc de lignes), et la fin de ligne déclenche son exécution. Dans ce cas, un simple "x" permet d'afficher son contenu sans le print.

    - dans un éditeur de texte, on tape l'ensemble du code, et on demande explicitement son exécution. Dans ce cas, tout ce qui doit être affiché pendant l'exécution demande un "print". Mais les bons outils de développement font plus que l'édition de texte, et permettent le débogage (entre autres). C'est cette dernière fonction qui permet l'exécution ligne par ligne.

    En conclusion, tes questions concernent plus les outils et méthodes de développement que Python lui-même.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    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 742
    Par défaut
    Salut,

    Citation Envoyé par Lou.lou Voir le message
    ou est-ce que c'est un comportement anormal qui nécessite de réinstaller Python?
    Python est un langage de programmation. On écrit des programmes sous forme de scripts puis on les exécute.

    Après si vous lancez l'interpréteur Python s'affichent '>>>' sous lequel on peut avoir ce genre de comportement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> a = 1
    >>> a
    1
    >>>
    Vous avez aussi des IDE qui intègrent une mouture d'interpréteur qui permet de revenir dans l'historique des commandes déjà entrées pour la relancer avec d'autres valeurs.

    Pour les ingénieurs/scientifiques qui explorent des données et font des graphiques plus ou moins au fil de l'eau, la console Ipython/Jupyter semble avoir été adoptée.

    A vous de voir avec quoi travaillent vos collègues qui sont dans votre domaine... Ils ont peut être emballé leur Python dans un environnement de travail que le développeur "normal" ignore.

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

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2015
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Octobre 2015
    Messages : 101
    Par défaut
    Merci à tous pour ces précisions.

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

Discussions similaires

  1. [Python 3.X] probleme de compilation d'un programme python comportant tkinter
    Par MazTech dans le forum Tkinter
    Réponses: 9
    Dernier message: 30/04/2020, 01h00
  2. Comportement des iterateurs Python
    Par JacekB dans le forum Général Python
    Réponses: 2
    Dernier message: 09/10/2016, 19h21
  3. [Python 2.X] Envois d'email comportant des accents avec python
    Par tolliob dans le forum Général Python
    Réponses: 6
    Dernier message: 13/08/2015, 08h13
  4. Comportement curieux de __div__ sous Python 3.4
    Par dimele dans le forum Général Python
    Réponses: 6
    Dernier message: 05/06/2014, 11h12
  5. [2008R2] sql server : requête sous python comporte la division entre deux attributs
    Par noramokh dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/06/2014, 16h24

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