Répéter une chaîne de n fois et imprimer les n lignes
j'ai été coincé sur une question depuis quelques temps:
Je cherche à créer une fonction python qui utilise une chaîne de caractères et un entier positif. La fonction d'impression de la chaîne de n fois, pour n lignes. Je ne peut pas utiliser les boucles, je dois seulement utiliser la récursivité
par exemple
repeat("hello", 3)
hellohellohello
hellohellohello
hellohellohello
chaque fois que j'essaie de faire une fonction qui fait cela, la fonction diminue la longueur de la chaîne, progressivement:
par exemple
repeat("hello", 3)
hellohellohello
hellohello
hello
voici ce que mon code ressemble à ceci:
def repeat(a, n):
if n == 0:
print(a*n)
else:
print(a*n)
repeat(a, n-1)
toute aide serait appréciée, merci!
- Donc, vous êtes confus que le
n-1
est en train de faire? - oui, je veux garder le nombre de fois que la chaîne est imprimé dans une ligne fixe sorte de paramètre, mais je veux que la fonction de répétition de la ligne n fois.
- Astuce: vous pouvez modifier le premier argument de
repeat
la même façon que vous modifiez le second. Au lieu de passern
sur l'appel récursif, vous passezn-1
. Donc au lieu de passera
, peut-être passer à autre chose?
Vous devez vous connecter pour publier un commentaire.
Essayer cette
0
pour le 3e paramètre.Un liner
Partageons cette
a*n
répète chaînen
fois, ce qui est ce que vous voulez dans une ligne+'\n'
ajoute une nouvelle ligne à la corde, de sorte que vous pouvez aller à la ligne suivante*n
parce que vous avez besoin de le répétern
fois[:-1]
est de supprimer la dernière\n
commeprint
met une nouvelle ligne par défaut.Donc, vous avez juste besoin d'argument supplémentaire qui va vous dire comment beaucoup de fois vous avez déjà exécuté cette fonction, et il devrait avoir de valeur par défaut, parce que, en premier lieu, la fonction doit prendre deux arguments(
str
et nombre positif).Sortie
Vous devez (en option) passer un 3ème paramètre qui gère la décrémentation du nombre de lignes sont à gauche:
Vous ont été vraiment proche.
Une fonction de fermeture pour faire le travail.
rep
un peu plus propre grâce à l'évolution de la condition deif c > 0
, alors vous n'avez pas besoin d'écrire une seule ligne d'instruction return