dibujar triangulo [avanzado]

# -*- 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.