'''
triangulo avanzado (idea)
_________
***** ***** \*******/ ***
*** *** \*****/ *
* * \***/
\*/
__author Daniel Vega
__fecha 27/04*2017
'''
def decorar(lista,decoracion=""):
return decoracion.join(lista)
''' el join lo utilizo para que no se vean los corchetes del array ni las comillas:
/['*']\
/['*', '*', '*']\
mas informacion acerca de join : http://www.tutorialspoint.com/python/string_join.htm'''
def decorar_espaciado(lista):
tamaño = len(lista)-1 # le resto 1 porque len no empieza a contar desde el 0 sino desde el 1
espaciado = " "*tamaño # (" "*tamaño) es una forma facil de agregar una cantidad de caracteres iguales
i = 0 #lo empiezo desde cero para que valla moviendo el array desde el primer indice.
#la razon de reversed era para calcular el expaciado maximo :P y asi irlo disminuyendo.
for x in reversed(range(tamaño)):
lista[i] = "{0}{1}".format(espaciado[0:x+1],lista[i])
i += 1
return lista
def triangulo(tamaño):
diseño_linea = "-"*(tamaño+2)#el +2 es por las dos decoraciones que se encontraran a los lados "\","/"
diseño_interno = []
diseño_interno.append(['*']*(tamaño+2)) #lo hice asi para evitar un for inecesario (ami parecer)
diseño_lados = [chr(92),'/'] #chr(92) es "\"
agregar = []
#la razon de colocar diseño_interno[0] esporque en el se encuentran todos los caracteres :P y luego van apareciendo con diseño_interno[0][0:x]
for x in range(len(diseño_interno[0])):
decorado = decorar(diseño_interno[0][0:x])
if(x % 2 !=0):
agregar.append("{0}{1}{2}".format(diseño_lados[1],decorado,diseño_lados[0]))
b = decorar_espaciado(agregar)
final = decorar(b,"\n") #si no hago salto de linea salen juntas :'c
print("{0}\n{1}".format(final,diseño_linea))
try:
pregunta = int(input("por favor introduzca la cantidad de caracteres maximos que desea:"))
if(pregunta %2 !=0):
triangulo(pregunta)
else:
print("lo siento pero nuestros duendes solo saben trabajar con numeros impares.".capitalize())
except:
print("ha habido un error , nuestros duendes de la decoracion esta dumiendo .quizas porque no agregaste un caracter valido.")
espero que les guste :D
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.