Pattern Program Python

Fermé
AchrafG - 3 nov. 2020 à 20:30
georges97 Messages postés 11824 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 18 avril 2024 - 4 nov. 2020 à 14:05
Je suis débutant sur Python, j'essaye de pratiquer plus d'exercices pour apprendre.
je me suis bloqué sur un exercice qui demande de tracer le le modèle ci-après en utilisant la boucle for et la boucle while :
*
####*####
########*########
####*####
*
(les étoiles doivent être au centre)

pouvez vous m'aider svp ?

3 réponses

Bonjour,
La première chose est d'arriver à imprimer quelque chose du genre : ###*###
Pour cela vous pouvez écrire, par exemple :
print("#"*3+*+"#"*3)

Si j'ai bien compris, vous voulez qu'il y ait 0 # puis 4 # puis 8 puis 4 et enfin 0.
Une manière bestiale est de créer la liste [0,4,8,4,0] :
liste = [0,4,8,4,0]

puis de faire une boucle for dans la liste et en demandant d'imprimer la sortie :
for i in liste:
    #votre code pour imprimer la sortie adéquate

Bon ! Vous n'avez utilisé que la boucle for. En fait, je ne sais pas si vous voulez utiliser la boucle for ET la boucle while dans le même script, ou si vous voulez écrire deux scripts : l'un avec for, l'autre avec while.
Pour faire moins sale, vous pouvez générer votre liste de manière automatique. Il faut générer une première liste [0,4,8]. Vous pouvez utiliser là-aussi une boucle for :
nbListe = 3
nbEtoile = 4
liste = []
for i in range(nbListe):
    liste.append(i * nbEtoile)

Là où ça se complique, c'est que vous devez créer une deuxième liste [4,0] et ajouter cette liste à la première. Vous pouvez utiliser la fonction reverse() pour ce faire.
Cela vous a-t-il aidé ? Quelle solution proposez-vous ?
0
georges97 Messages postés 11824 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 18 avril 2024 2 243
4 nov. 2020 à 14:05
Bonjour,

@ mcbeth82

Chacun appréciera votre sollicitude mais la règle sur CCM est de ne pas fournir de solution toute faite, notamment quand aucune ébauche de code n'est proposée, qui indique le niveau du demandeur et surtout ses efforts de début de commencement de résolution du problème.

Il est impossible de savoir à priori s'il s'agit d'un devoir scolaire à rendre demain, sans aucune recherche dans les fonctions basiques du langage ou une réelle étape dans un apprentissage personnel.

@ AchrafG

https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

La suite devrait nous renseigner, si suite il y a.

Cordialement
0
Mille excuses,
A la place de
print("#"*3+*+"#"*3)

il faut lire :
print("#"*3+"*"+"#"*3)
0
yg_be Messages postés 22697 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
4 nov. 2020 à 14:04
bonjour, si tu es complètement bloqué sur cet exercice, cela signifie probablement qu'il est préférable de faire d'abord des exercices plus simples.
0