Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)
Autor
|
Tema: Mini Reto Python. Dibujar rombo ~ (Leído 3,142 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
Ex-Staff
Desconectado
Mensajes: 10.239
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 http://twitter.com/novlucker "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
|
|
|
|
|
|
|
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
Ex-Staff
Desconectado
Mensajes: 10.239
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 por Novlucker »
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD http://twitter.com/novlucker "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) Saludos jajajaj hay una parte de ahi que me parece conocida... muy bueno, ya me voy a dormir mañana lo pruebo 
|
|
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Ex-Staff
Desconectado
Mensajes: 10.239
Yo que tu lo pienso dos veces
|
Si, te copié la frase completa, no iba a estar pensando otra  muy bueno, ya me voy a dormir mañana lo pruebo  Y yo tengo que irme a programar otra cosa  Saludos
|
|
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD http://twitter.com/novlucker "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
|
Dnk!
|
Yo directamente, me fui a dormir, sin avisar, que mal educado por mi parte. xD. A lo largo del dia, mirare mi algoritmo, para que te pinte si o si, las lineas exactas.
Tambien decir, que yo vengo de lenguajes menos dinamicos cono c++, java, c# y siempre me han enseñado a que si no hay que usar listas (arreglos), no se utilizan.
Aqui es donde quiero que me abrais un poco la mente sobre python, es decir, que es mejor que es peor...etc.
Saludos.
|
|
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Ex-Staff
Desconectado
Mensajes: 10.239
Yo que tu lo pienso dos veces
|
Para lo que pide realmente no es necesario utilizar listas, pero por mi parte lo había preferido para no repetir código, además de que me resultaba más legible. Y otro motivo es que en principio había hecho la función para que retornara la lista y luego desde fuera se imprimiera su contenido, pero finalmente he metido todo dentro de la función. Esto anterior era porque no me gusta tener una función con prints dentro porque pierde reusabilidad, pero esta claro que algunas funciones solo se crean para imprimir algo  Saludos
|
|
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD http://twitter.com/novlucker "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
|
Dnk!
|
Comprendido. A todo esto veo que nadie mas va a participar en este MiniReto. Aun asi aqui esta el tema y bien recibido seran las demas propuestas. Ahora toca esperar a un proximo reto  . xDnk!
|
|
|
|
|
En línea
|
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
mini-reto hacking piloto
Desafíos - Wargames
|
inforob
|
10
|
2,635
|
4 Febrero 2009, 23:14
por f0n
|
|
|
[Python]3 en raya y mini proyecto.
Scripting
|
braulio--
|
0
|
1,219
|
11 Abril 2009, 20:47
por braulio--
|
|
|
[Python] Ayuda con mini troyano
Scripting
|
.:Swik:.
|
3
|
2,079
|
7 Junio 2010, 22:09
por Debci
|
|
|
Reto/Juego Ejercicios en Python
« 1 2 3 4 »
Ejercicios
|
Novlucker
|
47
|
9,119
|
20 Diciembre 2010, 06:47
por [L]ord [R]NA
|
|
|
Reto: Números primos en python
Ejercicios
|
Novlucker
|
6
|
2,853
|
24 Noviembre 2010, 16:02
por Novlucker
|
|