sexta-feira, 7 de junho de 2013

[Python] Coding Dojo PUG-PI - Questão Diamantes


Questão proposta no coding dojo do PUG-PI (Python User Group do Piauí):

# -*- coding: latin1 -*-
# questão do conding dojo - PUG-PI
# Questão do Diamantes

letra = 'E' # entrada, modifique aqui a letra
lista_espacos = [] # lista de espaços margem a esquerda
for i in range(0, 26, 1): # são 26 letras (A-Z), vai de 0 a 25
   lista_espacos.append(i) # coloca na lista
lista_espacos2 = [] # lista de espaços entre as letras
lista_espacos2.append(0) # espaço entre o A
espacos = 1
for i in range(1, 26, 1):
   lista_espacos2.append(espacos)
   espacos = espacos + 2
indice_letra = ord(letra) - 65 + 1 # para pegar o índice certo da letra
# a parte de cima do diamante
j = 0
# for começa de indice_letra - 1, vai até índice 0, decrementa 1 (por isso -1)
for i in range(indice_letra - 1, -1, -1):
   if j == 0:
     print(' ' * lista_espacos[i] + 'A')
   else:
     # chr converte int para char
     print(' ' * lista_espacos[i] + chr(65 + j) + ' ' * lista_espacos2[j] + chr(65 + j))
   j = j + 1
# a parte de baixo do diamante
j = 1
for i in range(indice_letra - 2, -1, -1):
   if i == 0:
     print(' ' * (indice_letra - 1) + 'A')
   else:
     # chr converte int para char
     print(' ' * lista_espacos[j] + chr(65 + j) + ' ' * lista_espacos2[i] + chr(65 + j))
   j = j + 1 


Nenhum comentário: