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 :

Programmer une suite d'astérisques


Sujet :

Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 9
    Points
    9
    Par défaut Programmer une suite d'astérisques
    Bonjour,
    je dois résoudre un problème: écrire une suite d'astérisque comme cela:
    *
    **
    ***
    ****
    ***** 
    et ainsi de suite
    comment dois je faire ? quelle commande utiliser?
    C'est sur Python
    Merci

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par lolo3110 Voir le message
    je dois résoudre un problème
    si TU dois résoudre un problème, fais-le, on te dira si c'est bon ou pas, ce que tu peux améliorer ou non

    quelle commande utiliser? C'est sur Python
    pour ce qui est de "comment faire", il s'agit d'une simple boucle, à chaque tour on ajoute une astérisque au message à afficher, et on affiche le message.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    J'ai essayé de chercher, voilà ce que j'ai obtenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def etoile(i):
        i=0
        while i<=6:
            i=i+1
            print("*"**i)
    Est ce que c'est bon ?

  4. #4
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par lolo3110 Voir le message
    J'ai essayé de chercher, voilà ce que j'ai obtenu :

    def etoile(i):
    i=0
    while i<=6:
    i=i+1
    print("*"**i)

    Est ce que c'est bon ?
    Est-ce que cela te convient ?
    Pas d'aide par mp.

  5. #5
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    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 : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def etoile(i):
        i=0
        while i<=6:
            i=i+1
            print("*"**i)
    C'est presque bon, quelques remarques:
    • i représente le nombre d'étoiles maxi sur une ligne, i représente en général une variable représentant un index, je mettrais stars (étoiles) par exemple.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def etoile(stars):
        # suite du code

    • Ta ligne où tu écris i=0, écrase le paramètre attendu dans ta fonction, le paramètre de la fonction devient donc inutile
    • i = 0 est censé être un compteur, on pourrait rendre explicite le code en donnant comme nom de variable cpt = 0 pour un compteur
    • En mettant un nombre magique telle que la valeur 6 (valeur max d'étoiles sur une ligne), tu supprimes l'utilité de ton paramètre de fonction


    La solution est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while cpt <= stars: # tant que le compteur n'arrive pas au nombre d'étoiles maximum
        # suite du code
    Ensuite pour ton affichage, tu fais non pas une multiplication mais une puissance, il faut enlever un opérateur *.

    --------------------------------------------------------------

    Remarque pratique,

    Initialiser cpt à 1, permet d'afficher directement après la boucle le premier calcul

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while cpt <= stars:
        print("*" * cpt)
    Exécuter une fonction, c'est l'appeler, dans le code je ne le vois pas, je ne sais pas si tu sais le faire... exemple,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    etoile(5) # Tout simplement
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    Tout d'abord, merci beaucoup pour l'aide que vous m'avez apportée. J'ai refait le programme. Voici ce que j'ai obtenu en réutilisant ce que vous m'avez dit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def etoile(stars):
        cpt=0 #j'ai essayé d'appliquer cpt=1 : la première étoile, qui est toute seule n'apparait pas c'est donc pour cela que j'ai mis cpt=0. AVec cpt=0, la première étoile seule apparaît
        while cpt<stars:
            cpt=cpt+1
        print("*" * cpt) #La commande pour une puissance, c'est bien ** pourtant ? 
     
    etoile(7) #En appliquant le programme ci-dessus, la suite des astérisques apparaît
    Petites questions:
    il vaut mieux ne pas mettre de chiffre après le while ? (6 à la place du stars) ex : while cpt<stars

  7. #7
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    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 : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Voilà le code très peu modifier avec cpt = 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def etoile(stars):
        cpt = 1
        while cpt <= stars:
            print("*" * cpt)
            cpt = cpt+1
     
    etoile(7) #En appliquant le programme ci-dessus, la suite des astérisques apparaît
    Pour ce commentaire

    #La commande pour une puissance, c'est bien ** pourtant ?
    Oui, mais je vois pas le rapport avec la solution à ton problème, il faut bien multiplier le nombre d'étoile, pas mettre à la puissance de. ???

    il vaut mieux ne pas mettre de chiffre après le while ? (6 à la place du stars) ex : while cpt<stars
    Je l'ai expliqué précédemment, 6 est un nombre magique, il apparaît par magie sans être documenté comme un cheveu sur la soupe, ce n'est pas expressif de ce que tu souhaites faire pour résoudre ton problème...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    D'accord, je viens de comprendre tout le processus. Merci !

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/05/2015, 16h13
  2. Python 3.2 programme pour calcul d'une suite
    Par Amnael dans le forum Général Python
    Réponses: 5
    Dernier message: 22/10/2011, 20h53
  3. Réponses: 10
    Dernier message: 24/09/2010, 10h58
  4. aide pour un programme de calcul d'une suite
    Par sylar113 dans le forum Débuter
    Réponses: 10
    Dernier message: 01/11/2009, 23h39
  5. Programme pour une suite
    Par theblinker dans le forum Pascal
    Réponses: 3
    Dernier message: 12/01/2008, 16h51

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