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 :

aide pour un débutant python


Sujet :

Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut aide pour un débutant python
    Bonsoir à tous,

    Je suis débutant dans la programmation avec Python et tout nouveau dans ce forum.J'ai acheté le livre:programmer avec python de Gerard Swinnen et j'ai attaqué la lecture et les essais en téléchargeant Python 3.1 et lorsque j'arrive aux instructions composées avec l'exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>>a=0
    >>>if a=0:
             print"a est positif"
         elif a<0:
             print"a est négatif"
         else:
             print"a est nul"
    Donc jusqu'à la troisième ligne,tout va bien mais python 3.1,2.4,2.5 et 2.6 ne connaissent apparemment pas l'instruction else et elif (contraction de else if).
    Merci de m'éclairer.J'ai vu dans le forum que le livre s'est servi de la version 2.4 de python.Ah oui:active python n'a rien donné non plus.Je comprends ce langage mais cela me frustre de ne pas pouvoir l'appliquer.
    PS:je suis sous windows XP.Peut être devrais aller sous Linux?
    Merci beaucoup à tous pour votre aide.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut exemple mal sorti lors de l'envoi message
    Re bonsoir,

    L'exemple n'est pas comme écrit dans ma question;print"a est positif" et print"a est negatif" sont indentées par rapport à a=0 et if>0.
    Merci

  3. #3
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Salut

    Utilise le bouton <code> pour garder ton code en l'état (le bouton #).
    Je peux te confirmer que Python connait bien les if, elif et else
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> if False:
    ...     pass
    ... elif True:
    ...     print "Hello"
    ...
    Hello
    Ton problème ici, c'est dans le if a = 0.
    Python refuse cette expression puisqu'elle est incorrecte.
    Tu voulais certainement tester que a est égal à 0, ce qui s'exprime par a == 0. Tel que tu l'as écrit, ça signifie a prend pour valeur 0. or, il est interdit en Python d'assigner des valeurs dans une condition.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonsoir Antoine_935,

    Merci de m'avoir répondu;c'est sympa de ta part.Tout d'abord,excuse moi de te paraître "un peu âne"mais je débute depuis trois jours.Je pense que le bouton <code> ce sont les touches AltGr et la touche 3 au dessus des lettres.Mais garder le code en l'état,cela veut dire quoi s'il te plaît?
    Ensuite,je viens de taper l'exemple que tu m'as donné et là: aprés elif true:message d'erreur: indentationError unindent does not match any outer indentation level line 3.Je pense que je dois foirer quelque part car il reconnaît bien if mais else et elif:non.
    Peux tu me dire,s'il te plaît,quelle version de python tu utilises?
    D'avance merci.

  5. #5
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Salut

    Utilise le bouton <code> pour garder ton code en l'état (le bouton #).
    Je peux te confirmer que Python connait bien les if, elif et else [/quote]
    Je te le confirme aussi et le fait de passer sous Linux ne changera rien.
    En ce qui concerne le bouton #, Antoine_935 parle de celui qui se trouve dans la barre d'outil au dessus de la fenêtre qui te permets de nous répondre.

    Et garder le code intact cela signifie qu'il faut faire en sorte que ce que tu nous écrit soit identique à ce que tu as à ton écran dans ta console.
    Citation Envoyé par Antoine_935 Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> if False:
    ...     pass
    ... elif True:
    ...     print "Hello"
    ...
    Hello
    Ton problème ici, c'est dans le if a = 0.
    Python refuse cette expression puisqu'elle est incorrecte.
    Tu voulais certainement tester que a est égal à 0, ce qui s'exprime par a == 0. Tel que tu l'as écrit, ça signifie a prend pour valeur 0. or, il est interdit en Python d'assigner des valeurs dans une condition.
    Voila tout est dit...

    Quand tu dis que python "reconnaît bien if mais else et elif:non", je pense que tu es en réalité fasse à un problème d'indentation. Redonne nous ton code tel qu'il apparait à l'écran (avec même les espaces éventuels entre chaque caractère). On pourra ainsi contrôler ce qui cloche.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour à tous,

    J'ai repris l'apprentissage de la prog sous python;cela n'a pas l'air compliqué mais ça bloque à chaque fois.Je suis sous python 3.1:Je mets dessous les exemples que j'ai effectué:Exemples du livre de Gerard Swinnen.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Python 3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit (Intel)] on win32
    Type "copyright", "credits" or "license()" for more information.
    >>> n=7
    >>> msg="quoi de neuf?"
    >>> pi=3.14159
    >>> n
    7
    >>> msg
    'quoi de neuf?'
    >>> pi
    3.14159
    >>> print msg
    SyntaxError: invalid syntax (<pyshell#6>, line 1)
    >>> print msg:
     
    SyntaxError: invalid syntax (<pyshell#7>, line 1)
    >>> largeur=20
    >>> hauteur=5*9.3
    >>> largeur*hauteur
    930.0
    >>> 
    >>> print 17+3
    SyntaxError: invalid syntax (<pyshell#12>, line 1)
    >>> print 17 + 3
    SyntaxError: invalid syntax (<pyshell#13>, line 1)
    >>> a=150
    >>> if(a>100)
    SyntaxError: invalid syntax (<pyshell#15>, line 1)
    >>> a=150
    >>> if(a>100):
           print"a dépassé la centaine"
     
    SyntaxError: invalid syntax (<pyshell#18>, line 2)
    >>> a=0
    >>> if a>0:
        print "a est positif"
     
    SyntaxError: invalid syntax (<pyshell#21>, line 2)
    >>>
    Apparemment,il n'aime pas les 29 variables utilisées par Python:if,then,else,elif,print.Je ne comprends pas .Tout ce qui est basique,ça va (opérations)mais dés qu'une des variables est mises en cause:ça bloque.
    Pour l'indentation,je tape 4 espaces du bord:exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>>a=20
    >>>if (a>100):
              print "a dépassé la centaine"  
         else:    (4 espaces du bord)
              print "a ne dépasse pas cent"
    Voilà mon exemple mais mon prog a déjà planté aprés que j'ai fait <enter>aprés la ligne print"a depasse la centaine.il y a le défaut:syntaxerror:invalid syntax (pyshell#2,line 2).
    Aidez moi s'il vous plaît, car là je suis perdu.Mis à part cela,ça a l'air assez simple à comprendre Python.ça me rappelle le turboPascal de mes années BTS.Merci à tous et à plus.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Points : 224
    Points
    224
    Par défaut
    Salut,
    Je vois un problème dans ton code : tu utilise l'instruction print comme ceci
    Or dans python 3.x, qui rompt la compatibilité avec la version 2.x, print n'est plus une instruction mais une fonction. On l'utilise de cette manière
    C'est ça qui provoque tes messages d'erreur.

    Python 3.11 n'est donc pas adapté au tutoriel que tu suis. Il te faut donc soit utiliser python 2.6, soit suivre un cours qui utilise python 3 !

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Points : 396
    Points
    396
    Par défaut
    Le cours que tu as est pour Python 2.x
    Il y a quelques différances avec Python 3.x

    Ton problème vient du : print
    En Python 3 c'est ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print('c'est avec les parenthèses)
    en python 2 c'est ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print 'sans les parenthèses'

  9. #9
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Salut,
    Alors en fait, tu utilises python 3.1, alors que le tutoriel de Gérard Schwinnen utilises Python 2.4. Le problème, c'est que python 3.0 apporte de grosses modifications au langage et brise la compatibilité descendante.
    En gros, python 3.1 : print("une phrase")
    python 2.4,2.5,2.6 : print "une phrase"
    C'est la d'où vient ton problème. Donc utilises python 2.6 si tu peux, ou adapte les exemples à python 3.1 (pas le plus évident pour un débutant).
    Bon courage, t'as juste commencé à apprendre au mauvais moment...

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonsoir à tous,

    Merci ne m'avoir répondu.Je suis donc passé sous version Python 2.4 mais j'ai toujours les mêmes erreurs.Il ne reconnait pas else,elif.Je vous mets les exemples que j'ai tapé (tjrs d'aprés le livre de Gerard Swinnen):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32
    Type "copyright", "credits" or "license()" for more information.
     
        ****************************************************************
        Personal firewall software may warn about the connection IDLE
        makes to its subprocess using this computer's internal loopback
        interface.  This connection is not visible on any external
        interface and no data is sent to or received from the Internet.
        ****************************************************************
     
    IDLE 1.1.4      
    >>> a=150
    >>> if(a>100):
    	print"a depasse la centaine"
     
     
    a depasse la centaine
    >>> a=20
    >>> if(a>100):
    	print"a depasse la centaine"
          else:  ( du bord,je compte 4 espaces)
     
    IndentationError: unindent does not match any outer indentation level (<pyshell#7>, line 3)
    >>> a=0
    >>> if a>0
    SyntaxError: invalid syntax
    >>> a=0
    >>> if a>0:
    	print"a est positif"
          elif a<0:
     
    IndentationError: unindent does not match any outer indentation level (<pyshell#13>, line 3)
    >>>
    Je bloque et là je rage.Il va prendre un mawashi geri l'ordi que ça va pas tarder.Ce n'est pas possible.Ou c'est un problème d'indentation,ou de version mais là je n'arrive plus à suivre.Et là,ce n'est que le début.
    Essayez de m'aider s'il vous plaît!!!Doit on vraiment à partir du bord compter 4 espaces avant de marquer else ou elif?
    Merci à tous.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 105
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    Oui, c'est bien seulement un problème d'indentation...
    La console IDLE te décale la première ligne de l'équivalent de 4 espaces (3 chevrons et une espace).
    Pour les lignes suivantes, tu dois faire comme si ce décalage n'existait pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> a=0
    >>> if a>0:
        print"a est positif"
    elif a<0:
        print"a est négatif"
    else:
        print"a est nul"
     
     
    a est nul
    >>>
    Comme ça, ça fonctionne...

    Au fait la dernière version de Python en 2.x est la 2.6.4...

    @+

  12. #12
    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
    Quelqu’un a eu le même problème avec l’indentation récemment parce qu’il était comme tu l’es manifestement en mode console (Shell Window) de IDLE
    Ce mode n’est destiné qu’à pemettre de faire exécuter de courtes instructions pour obtenir les résultats dans la même fenêtre que les instructions.

    Il n’est pas pratique pour écrire et éditer des codes moins sommaires.



    Pour que IDLE s’ouvre en mode Edition lors de son démarrage, il faut le configurer pour:

    en haut de la fenêtre IDLE, suivre Options / Configure IDLE... / General et cocher “Open Edit Window“ dans le bandeau Startup Preferences



    EDIT:
    Peut être utile
    http://hkn.eecs.berkeley.edu/~dyoo/p...o/indexfr.html



    Je te conseille d’installer Python 2.6.4

    À moins que tu ne sois obligé de faire tourner des codes anciens qui ne tournent qu’avec la version 2.4.4 , il ne faut pas rester dans une version dépassée, ça n’a strictement aucune justification en soi.

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut sensationnel
    Merci beaucoup à tous, vous m'avez débloqué.Je peux avancer dans mon apprentissage.
    Encore merci et à plus.

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

Discussions similaires

  1. [PostgreSQL] [POSTGRES] Aide pour un débutant
    Par Tiolebucheron dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/11/2008, 08h45
  2. Aide pour un débutant
    Par Flow_75 dans le forum OpenGL
    Réponses: 3
    Dernier message: 13/07/2008, 18h34
  3. Besoin d'aide pour un débutant en procédure stockée
    Par el gringo dans le forum Débuter
    Réponses: 2
    Dernier message: 06/04/2006, 11h17
  4. De l'aide pour un débutant
    Par Abelkims dans le forum Débuter
    Réponses: 21
    Dernier message: 02/09/2005, 11h11
  5. De l'aide pour un débutant
    Par Abelkims dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/08/2005, 14h33

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