J'essaie de faire une grille de cuirassé, avec des chiffres à gauche et des lettres en haut. Je ne sais pas trop comment imprimer un certain nombre de lettres et les ajouter avec python. Je suis un débutant extrêmement nouveau en ce qui concerne Python.

Par exemple:

    def displayGrid(Rows,Columns):
        output = '| '
        for title in range(97,110):
            output = output + chr(title)
            output = output + ' |'
        print(output)

        for row in range(Rows):
            output = str(row + 1) + '| '
            for col in range(Columns):
                output = output + " | "
            print(output)

    Rows = int(input("Number of rows you want? \n"))
    Columns = int(input("Number of columns you want? \n"))

    displayGrid(Rows, Columns)

Je le veux donc le nombre de colonnes est le nombre de lettres qu'il imprime mais je n'arrive pas à le comprendre.

0
Mvpgman1425 7 mars 2016 à 11:31

4 réponses

Meilleure réponse

Votre première boucle (for title in range(97,110):) aura toujours une longueur fixe (de 110 à 97 = 13 éléments), vous vous retrouverez donc toujours avec la même première ligne, quel que soit le nombre de colonnes souhaité.

Essayez quelque chose comme for title in range(97, 97+Columns):

1
acdr 7 mars 2016 à 08:35

Quelques conseils -

  1. Lorsque vous avez un itérable que vous souhaitez imprimer et joindre avec un certain délimiteur, vous pouvez utiliser join - '|' .join (["a", "b", "c"]) a | b | c

  2. from string import lowercase vous donnera une chaîne (sur laquelle vous pourrez répéter) toutes les lettres minuscules.

  3. Vérifiez python itertools - https://docs.python.org/2/library/itertools.html

-1
Tom Ron 7 mars 2016 à 08:36

Vous pouvez accéder aux lettres minuscules via

from string import lowercase

Et une façon propre de réaliser votre chaîne serait:

result = "| " + " | ".join(lowercase[0:size]) + " |"
0
MariusSiuram 7 mars 2016 à 09:27

Remplacer ceci

    for title in range(97,110):
        output = output + chr(title)
        output = output + ' |'
    print(output)

Par

output = " |" +"|".join([chr(i) for i in range(97,97+Columns)])
print(output)
0
maazza 7 mars 2016 à 09:31