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 :

des boucles sous python


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 38
    Points : 29
    Points
    29
    Par défaut des boucles sous python
    Bonjour,
    je suis débutante dans la programation avec ce langage et je veux savoir comment écrire des boucles sous python j'ai essayé de faire une boucle while mais voici le code et le msg d'erreur qui s'affiche

    max=5
    i=0
    while i<max:
    ...square=i**2
    le msg est: indentation Error :expected an indented block (line2)

    Que dois je faire?
    merci

  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,

    En python l'indentation n'est pas conventionnelle, elle est obligatoire. Tu dois donc placer une tabulation au début de la ligne 2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>> i = 0
    >>> while i < max:
    ...     square = i ** 2
    Cela dit, tu lanceras ton programme dans une boucle infinie parce que le carré de zéro fera toujours zéro.


    Edit: Regardes ici: http://python.developpez.com/cours/TutoSwinnen/
    Il y a moyen de télécharger ce cours.

  3. #3
    Membre confirmé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Points : 455
    Points
    455
    Billets dans le blog
    1
    Par défaut
    L'indentation détermine la portée d'un bloc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    max = 5
    for i in xrange( max ):
        square = i*i
        print i,square
    print 'fini'
    va afficher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    0 0
    1 1
    2 4
    3 9
    4 16
    fini
    Tu vois que les lignes indentées font partie de la boucle mais pas la ligne qui affiche 'fini'.
    Ca fait peur au début, mais ensuite on trouve ça très naturel !

    Hadrien
    Captain'Flam
    anciennement Sopsag, aka Hadrien
    Win seven x64 & Win 10 / Visual 2017 / Python 2.7 / Eclipse

  4. #4
    Membre confirmé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Points : 455
    Points
    455
    Billets dans le blog
    1
    Par défaut
    Pour info, l'indentation peut être différente d'un bloc à l'autre (espaces ou tabulations en nombre quelconque), mais constante dans un même bloc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    max = 5
    for i in xrange( max ):
        # ici : 4 espaces
        square = i*i
        print i,square
    for i in xrange( max ):
            # ici : 1 tabulation (affichee comme 8 espaces)
            cube = i*i*i
            print i,cube
    print 'fini'
    Captain'Flam
    anciennement Sopsag, aka Hadrien
    Win seven x64 & Win 10 / Visual 2017 / Python 2.7 / Eclipse

  5. #5
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    C'est bien des pratiques Windows ça...
    Et la lisibilité ?

    4 espaces par niveau d'indentation.
    Pas de tabs.
    Ne jamais mixer tabs et espaces.
    Un saut de ligne entre les fonctions.
    Deux sauts de ligne entre les classes.

    @+
    Merci d'utiliser le forum pour les questions techniques.

  6. #6
    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
    Citation Envoyé par Captain'Flam Voir le message
    Pour info, l'indentation peut être différente d'un bloc à l'autre (espaces ou tabulations en nombre quelconque), mais constante dans un même bloc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    max = 5
    for i in xrange( max ):
        # ici : 4 espaces
        square = i*i
        print i,square
    for i in xrange( max ):
            # ici : 1 tabulation (affichee comme 8 espaces)
            cube = i*i*i
            print i,cube
    print 'fini'
    Que voila un bien mauvais conseil.

    http://www.python.org/dev/peps/pep-0008/

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 38
    Points : 29
    Points
    29
    Par défaut
    merci , j'ai résolu le problème c'était vraiment à cuase de l'espace .

  8. #8
    Membre confirmé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Points : 455
    Points
    455
    Billets dans le blog
    1
    Par défaut
    Rhaaa la la !
    Faut pas vous énerver les gars !
    Ce n'était pas un "conseil" mais une information.

    Moi aussi j'indente avec 4 espaces, je n'utilise jamais de tabulations (depuis toujours, même dans d'autres langages, je suis allergique aux tab)...
    Je sépare mes déclarations de classe avec une ligne de '#' (quant elles ne sont pas dans des fichiers séparés) et mes fonctions avec une petite ligne de '-'.

    Mais je trouve interessant de savoir comment python s'y prend pour identifier les blocs.
    Et je préfère que les règles de codage soit acceptées parce que comprises, plutôt qu'appliquées benoîtement.
    Captain'Flam
    anciennement Sopsag, aka Hadrien
    Win seven x64 & Win 10 / Visual 2017 / Python 2.7 / Eclipse

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

Discussions similaires

  1. Classer des données sous python et déterminer le sens
    Par Chefcou dans le forum Général Python
    Réponses: 2
    Dernier message: 13/05/2012, 06h58
  2. Arboréscence et taille des dossiers sous Python 2.7
    Par tahngarth dans le forum Général Python
    Réponses: 2
    Dernier message: 08/03/2011, 15h31
  3. Quel langage pour faire des boucles sous FTP ?
    Par Mourne dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 04/07/2007, 16h33
  4. boucle de la liste des utilisateurs sous shell
    Par lulut dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 14/05/2007, 12h06
  5. Probleme de boucle avec des processus sous UNIX
    Par sebastieng dans le forum POSIX
    Réponses: 6
    Dernier message: 15/10/2005, 18h57

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