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 :

Erreur « invalid syntax » sur une boucle


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Erreur « invalid syntax » sur une boucle
    Bonsoir j'ai cherché sur d'autres forum et je n'ai toujours pas trouvé la réponse..
    J'espère que vous pourrez m'aider..
    Merci d'avance.

    Voila mon mini programme qui me sert à compter les caractères.

    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
    # -*-coding:Latin-1 -*
    """Comteur de caractères"""
    import os
    print ("Bienvenue dans le compteur de caractère")
    os.system("pause")
    while 1:
    	entre = 0
    	nben = 0
    	while entre==0:
    		entre = input ("Entrez du texte : ")
    	try:
    		entre = str(entre)
    	for nben in entre:
    		nben += 1
    	print ("Votre texte contient",nben,"caractères.")
    os.system("pause")
    L'erreur "invalid syntaxe" apparait et redirige ma "barre qui clignote quand j'écris" entre le for et le nben.
    Si quelqu'un pourrait m'aider..

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Il est bien de mettre un titre qui décrit le problème.

    - La boucle while ne sert à rien, input() retournera le texte entier lorsque l'utilisateur entrera Enter

    - Le try ne sert à rien, le texte est de toutes façons déjà une str() et, de plus, il devrait être suivi par un exept

    - Tu as oublié les espaces dans "Votre texte contient",nben,"caractères."

    - os.system("pause") ne sert à rien non plus.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonjour,
    Et de surcroît, ce qui fait planter l'ensemble (en plus de l'absence de "except"), c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for nben in entre:
        nben += 1
    Avec "entre" une chaîne, donc "nben" un caractère.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> "a" += 1
    SyntaxError: can't assign to literal
    >>>
    Et de plus, la boucle est infinie…

    Clodion

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut 1 dernière chose
    comment est-ce que je pourrais faire cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for nben in entre:
        nben += 1
    je ne comprend pas car j'avais deja fais un truc du genre et python m'as rien dit

    Dans mon prog c'était comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if prop_j<ch_mys:
    	print ("C'est plus grand!")
    	compteur_dentre += 1

  5. #5
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par Badarm Voir le message
    comment est-ce que je pourrais faire cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for nben in entre:
        nben += 1
    je ne comprend pas car j'avais deja fais un truc du genre et python m'as rien dit

    Dans mon prog c'était comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if prop_j<ch_mys:
    	print ("C'est plus grand!")
    	compteur_dentre += 1
    Bonjour,
    Lorsque des gens essayent d'aider, le minimum est d'essayer de comprendre leurs réponses. VinsS s'est donné la peine de relever quatre points, le minimum serait de montrer le script modifié tenant compte des remarques.

    Dans le script initial, il y a une confusion entre entier et caractère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for nben in entre:
        nben += 1
    La variable "nben" n'est pas un compteur, c'est un caractère! C'est indiqué à la première ligne ("for nben in entree:").
    Que devrait donc donner: ???????
    Je ne le sais pas, Python non plus.

    Dans le deuxième code, qui n'est pas complet puisqu'on ne connaît pas les valeurs, ni les types des variables, on suppose que "compteur_dentre" est une variable de type entier ("int").
    Incrémenter un entier, python sait le faire…

    Clodion

Discussions similaires

  1. Connection a une BD SQL SERVER Aidez Moi SVP????
    Par pop bob dans le forum Bases de données
    Réponses: 3
    Dernier message: 07/08/2005, 16h29
  2. Recuperation de ma base BD apres la sauvegarde Aidez Moi SVP
    Par pop bob dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/07/2005, 16h38
  3. J'ai du mal à me décider ! Aidez moi svp :)
    Par VanHelsing dans le forum Mobiles
    Réponses: 18
    Dernier message: 01/06/2005, 14h59
  4. Je vois pas d'où vient mon erreur!! Aidez moi SVP
    Par liliboms dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/04/2005, 08h25
  5. Réponses: 29
    Dernier message: 11/05/2004, 13h18

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