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 :

Exercice python 3


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    magasinié
    Inscrit en
    Décembre 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : magasinié

    Informations forums :
    Inscription : Décembre 2018
    Messages : 34
    Par défaut Exercice python 3
    Bonsoir,

    J'ai une erreur sur mon code : expected an indented block
    J'ai beau enlever et remettre les espaces, retaper le code rien n'y fait j'ai l'erreur.

    Mon but est de coder la table de 7 jusqu'à 20 et de mettre un * pour les multiples de 3.
    Dans mon code j'ai mis while et if donc je me demande si le soucis vient de la sachant que dans le livre je n'ai encore jamais vue d'exemples de blocs avec les 2 regroupé.
    (Je suis au tout début du livre : apprendre à programmer avec python 3.
    J'ai essayé de faire plusieurs blocs etc rien ne marche et 2 heures que je suis bloqué dessus ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a= 1
    while a<=20:
        print (a*7)
        if a % 3 == 0 :
        print ("*")
        a=a+1
    Merci et bonne soirée

    Nom : jh.JPG
Affichages : 211
Taille : 11,8 Ko

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    La règle générale est que lorsqu'une ligne se termine par un double point le bloc de code qui en dépend soient indenté.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        if a % 3 == 0 :
            print ("*")  # Indentation parce que dépendante du if

  3. #3
    Membre averti
    Homme Profil pro
    magasinié
    Inscrit en
    Décembre 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : magasinié

    Informations forums :
    Inscription : Décembre 2018
    Messages : 34
    Par défaut
    Bonsoir,

    Merci pour la réponse. J'avais essayé mes j'avais une erreur, je devais mal le faire..
    Maintenant j'ai sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a=1
    while a<=20 :
        print (a*7)
        if a % 3 ==0 :
            print ("*")
        a=a+1
    De quelle façon je pourrais avoir les * à côté est non en dessous sans utiliser de langages que je n'ai pas encore appris ? je me creuse la tête à essayer de trouver la façon la plus simple de le mettre à l'écrit mais je ne trouve pas

    7
    14
    21
    *
    28
    35
    42
    *
    49
    56
    63
    *
    70
    77
    84
    *
    91
    98
    105
    *
    112
    119
    126
    *
    133
    140

    Merci à vous

    PS: même quand je relis le code que j'ai fais moi même j'ai l'impression que c'est du chinois

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

    Citation Envoyé par outiat Voir le message
    je me creuse la tête à essayer de trouver la façon la plus simple de le mettre à l'écrit mais je ne trouve pas
    Ce sont des choses que vous ne pouvez pas inventer. C'est pour çà qu'il y a de bons tutos qui vous expliquent ce genre de choses avant de vous proposer de les utiliser dans un exercice.

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

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Salut

    Pour avoir l'étoile à côté du nombre et non pas en dessous, la solution peut être de procéder par une chaine de carcatère.
    Au début de ta boucle tu l'initialise à str(a*7). Dans ta condition if tu ajoute '*' à la fin de cette chaine. Et ensuite seulement, quelquesoit le contenu de la chaine de caractère, tu l'a fais affiché

    Autre option : Tu teste dès le début de ta boucle si a est divisible par 3, et comme ca dans chaque cas tu sais directement ce que tu dois printer.

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 063
    Par défaut
    Avec le formatage de chaîne ça doit le faire assez élégamment étant donné que ce n'est que de l'affichage demandé,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print(f'{s}*' if s%3==0 else s) # s -> a*7
    Mais il est débutant... et pourquoi l'apprentissage du while avant la boucle for ?

Discussions similaires

  1. aide exercice python
    Par brunette83 dans le forum Général Python
    Réponses: 10
    Dernier message: 21/11/2012, 08h36
  2. aide exercice python
    Par brunette83 dans le forum Général Python
    Réponses: 1
    Dernier message: 13/11/2012, 22h40
  3. problème exercice python
    Par moushti dans le forum Général Python
    Réponses: 2
    Dernier message: 09/02/2011, 03h52
  4. aide exercice python
    Par cedric190985 dans le forum Général Python
    Réponses: 2
    Dernier message: 24/03/2010, 12h57
  5. exercice python premiere annee
    Par agui26 dans le forum Général Python
    Réponses: 3
    Dernier message: 10/01/2010, 11h52

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