Losange creux⚓︎
L'objectif de cet exercice est d'écrire une fonction qui affiche du texte sous la forme
📤 Sortie
###### ######
##### #####
#### ####
### ###
## ##
# #
## ##
### ###
#### ####
##### #####
###### ######
- Ici, la première ligne est composée de 6
#
, puis 3 espaces, puis 6#
; des croisillons. - Pour afficher cette ligne, on peut faire
print('#' * 6 + ' ' * 3 + '#' * 6)
- Il y a \(2×6-1=11\) lignes.
- Le motif possède deux axes de symétrie ; verticalement et horizontalement.
Exercice
Écrire une fonction récursive telle que losange(n, p)
affiche un motif tel que décrit ci-dessus, avec une première ligne de n
croisillons, puis p
espaces, puis n
croisillons.
###
def losange(n, p):bksl-nl ...bksl-nl bksl-nlbksl-nlbksl-nlbksl-nllosange(6, 3) # pour obtenir la figure de l'énoncé.bksl-nlbksl-nl
Indice
Dans cette figure, obtenue avec losange(6, 3)
, y a-t-il une autre figure incluse, obtenue avec losange(n, p)
?
- Quels sont alors les paramètres
n
etp
? - Que fait-on d'autre pour la figure complète.
Réponse
🐍 Script Python
def losange(n, p):
if n > 0:
ligne = '#' * n + ' ' * p + '#' * n
print(ligne)
losange(n - 1, p + 2)
print(ligne)