| 
	
		|  Autor | Tema: Mini Reto Python. Dibujar rombo ~  (Leído 30,825 veces) |  
	| 
			| 
					
						| Dnk! | 
 
Se debe realizar una funcion en python el cual dibuje un rombo de asteriscos "*". Se le debe pasar por parametro el numero de lineas. Debiera quedar mas o menos asi:  Espero se animen. xDnk!
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Novlucker 
								Ninja y 
								Colaborador
								      Desconectado 
								Mensajes: 10.683
								 
								Yo que tu lo pienso dos veces
								
								
								
								
								
								   | 
 
Esos son 9 niveles? Alcanza hacerlo con asteriscos o hay que utilizar alguna librería gráfica?
 Saludos
 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
 Albert Einstein |  |  |  | 
			| 
					
						| Dnk! | 
 
Si, son nueve niveles, pero recuerda el numero de lineas se pasa por parametro, asi que no importa, mientras graficamente ser parezca a la imagen. Unicamente con el uso de asteriscos.
 Saludos.
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| n1co 
								
								 Desconectado 
								Mensajes: 15
								
								
								
								
								
								   | 
 
Buenas muchachos, he hecho el reto!    publico a ver que tul,  '''Created on 01/12/2010 @author: nicolas''' import sys def es_par(numero):    return (numero % 2 == 0) def dibujar_rombo(lineas):    lineas = int(lineas)    if es_par(lineas):        print 'El numero de lineas es par, no puedo escribir un rombo perfecto'    else:        espacios = int(lineas / 2)                disminuyo = False        cantidad = 1        str = ''        for i in xrange(lineas):            for n in xrange(espacios):                str += ' '                            for n in xrange(cantidad):                str += '*'            print str            if len(str) == lineas:                disminuyo = True            if disminuyo:                cantidad -= 2                espacios += 1            else:                cantidad += 2                espacios -= 1            str = '' if __name__ == '__main__':    dibujar_rombo(sys.argv[1])    #dibujar_rombo(9)        
 Saludos.. |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Dnk! | 
 
Ya no queria ser yo el primero, y visto que n1co ya posteo el suyo, ahora me toca a mi.   def imprimirRombo(n):    n = n//2    for i in range(n,0,-1):        for j in range(n,(n-(i+1)),-1):            print '',        for k in range(i+1,n+1):            print '*',        print    for i in range(0,n):        for j in range(n,(n-(i+1)),-1):            print '',        for k in range(i+1,n+1):            print '*',        print  imprimirRombo(10)  
 Mientras me miro tu code n1co. xDnk! |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| n1co 
								
								 Desconectado 
								Mensajes: 15
								
								
								
								
								
								   | 
 
mmm nuestros scripts hacen cosas difetenes, puesto que tu pusiste el ejercicio yo tal vez no comprendi del todo. Te daras cuenta que el numero que recibo por parametro es el numero de lineas del rombo, cosa que en el tuyo no se cumple segun lo que acabo de probar, y otra cosa es que para los numeros pares no escribo el rombo ya que no seria perfecto, pero al ver tu script veo que se podia hacer de otra forma y quedaba bien   |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Dnk! | 
 
Si, es verdad, si le paso por ejemplo 10, se traga una linea, que la muestra en blanco.
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| n1co 
								
								 Desconectado 
								Mensajes: 15
								
								
								
								
								
								   | 
 
y si le pasas un impar te lo hace en dos lineas menos pero bueno es otra forma de hacerlo, si te das cuenta en mi ejemplo el numero por parametro coincide tambien con el lado mas largo del rombo |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Novlucker 
								Ninja y 
								Colaborador
								      Desconectado 
								Mensajes: 10.683
								 
								Yo que tu lo pienso dos veces
								
								
								
								
								
								   | 
 
Yo tengo esto   def imprime(n):    if not n%2:        print 'El numero de lineas es par, no puedo escribir un rombo perfecto'    else:        l = [[' ' for x in range(n)] for z in range(n/2+1)]        for e in range(n):            for i in range(e,n-e):                l[e][i] = '*'        l = l[:0:-1]+l        for i in l:            print ' '.join(i) imprime(11)
 Saludos |  
						| 
								|  |  
								| « Última modificación:  2 Diciembre 2010, 02:45 am por Novlucker » |  En línea | 
 
 Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
 Albert Einstein |  |  |  | 
			| 
					
						| n1co 
								
								 Desconectado 
								Mensajes: 15
								
								
								
								
								
								   | 
 
Yo tengo esto   def imprime(n):    if not n%2:        print 'El numero de lineas es par, no puedo escribir un rombo perfecto'    else:        l = [[' ' for x in range(n)] for z in range(n/2+1)]        for e in range(n):            for i in range(e,n-e):                l[e][i] = '*'        l = l[:0:-1]+l        for i in l:            print ''.join(i) imprime(11)
 Saludosjajajaj hay una parte de ahi que me parece conocida...     muy bueno, ya me voy a dormir mañana lo pruebo   |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | [Python]3 en raya y mini proyecto. Scripting
 | braulio-- | 2 | 10,194 |  4 Junio 2018, 23:22 pm por tincopasan
 |  
						|   |   | [Python] Ayuda con mini troyano Python
 | .:Swik:. | 3 | 6,677 |  7 Junio 2010, 22:09 pm por Debci
 |  
						|   |   | Reto/Juego Ejercicios en Python
							« 1 2 3 4 5 » Ejercicios
 | Novlucker | 47 | 38,696 |  20 Diciembre 2010, 06:47 am por [L]ord [R]NA
 |  
						|   |   | Reto: Números primos en python Ejercicios
 | Novlucker | 6 | 10,914 |  24 Noviembre 2010, 16:02 pm por Novlucker
 |  
						|   |   | [RETO+Python] Buscando rangos
							« 1 2 » Scripting
 | Novlucker | 13 | 9,104 |  31 Enero 2011, 18:30 pm por Karcrack
 |    |