La création d'un modèle de diamant à l'aide de boucles

Je suis en train d'écrire un programme qui lit un entier et affiche, à l'aide d'astérisques, une fois rempli, un diamant de la longueur du côté. Par Exemple, si la longueur du côté est de 4, le programme doit afficher

   *
  ***
 *****
*******
 *****
  ***
   *

Voici ce que je suis en train de faire. Il est en cours d'exécution, mais je n'arrive pas à obtenir les espaces à droite pour afficher la forme de diamant correctement....

userInput = int(input("Please input side length of diamond: "))

if userInput > 0:
    for i in range(userInput):
        for s in range(userInput -3, -2, -1):
            print(" ", end="")
        for j in range(i * 2 -1):
            print("*", end="")
        print()
    for i in range(userInput, -1, -1):
        for j in range(i * 2 -1):
            print("*", end="")
        print()

Merci!

  • semble comme des devoirs à faire à la question. examen lien
  • Il est. Il n'y a pas d'erreur à proprement parler. Seul problème est que je ne suis pas en mesure d'obtenir le modèle de diamant droite comme indiqué.
  • Votre code a range(), et vous n'avez pas d'erreurs?
  • Oups, désolé, j'ai oublié de mettre dans la gamme, mais oui, c'est encore ne me donne pas le bon modèle.
  • Conseils: 1) dans la première moitié du diamant, vous devez commencer à un grand nombre d'espaces et de progressivement diminuer. Ainsi, dans userInput - 3, vous allez avoir à impliquer le numéro de ligne – i. Il n'est également pas nécessaire d'utiliser une rétrospective de gamme ou de s'arrêter au -2. 2) Vous devez imprimer des espaces dans la seconde moitié, trop.
InformationsquelleAutor | 2015-09-16