# -*- coding: utf-8 -*-
'''
triangulo avanzado (idea)
_________
***** ***** \*******/ ***
*** *** \*****/ *
* * \***/
\*/
__author Daniel Vega
__fecha 27/04*2017
'''
def decorar(lista,decoracion=""):
''' 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'''
return decoracion.join(lista)
def decoracion_puntita(tamaño):
a = " "*tamaño
return(a)
def decorar_espaciado(lista):
# le resto 1 porque len no empieza a contar desde el 0 sino desde el 1
tamaño = len(lista)-1
# (" "*tamaño) es una forma facil de agregar una cantidad de caracteres iguales
espaciado = " "*tamaño
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,relleno="*"):
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([relleno]*(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
puntita_espacio = len(agregar[0].split(" "))
print("{0}{1}".format(decoracion_puntita(puntita_espacio),"ĘŚ"))
print("{0}\n{1}".format(final,diseño_linea))
while True:
try:
pregunta = int(input("\npor favor introduzca la cantidad de caracteres maximos que desea:"))
if(pregunta >101):
print("¿estas loco? ¿quieres matar a nuestros pobres duendecitos?")
elif(pregunta %2 !=0):
break
else:
print("lo siento pero nuestros duendes solo saben trabajar con numeros impares.".capitalize())
except:
print("ha habido un error , nuestros duendes se han ido a dormir. Quizas porque no agregaste un caracter valido.")
while True:
relleno = input("\nDigita el caracter de relleno (no puedes colcar espacio). Si quieres el relleno por defecto pulsa enter:")
if relleno == "" :
print("Relleno por defecto")
triangulo(pregunta)
break
elif len(relleno) < 2 and relleno != " ":
triangulo(pregunta,relleno)
break
else:
print("Alerta nuestros duendecitos solo pueden hacer relleno con un solo caracter")
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.