elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Mini Reto Python. Dibujar rombo ~
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Mini Reto Python. Dibujar rombo ~  (Leído 28,918 veces)
Dnk!

Desconectado Desconectado

Mensajes: 38



Ver Perfil WWW
Mini Reto Python. Dibujar rombo ~
« en: 1 Diciembre 2010, 23:34 pm »

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




Comentar es agradecer.
Visita Mi Blob
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Mini Reto Python. Dibujar rombo ~
« Respuesta #1 en: 1 Diciembre 2010, 23:41 pm »

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!

Desconectado Desconectado

Mensajes: 38



Ver Perfil WWW
Re: Mini Reto Python. Dibujar rombo ~
« Respuesta #2 en: 1 Diciembre 2010, 23:43 pm »

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




Comentar es agradecer.
Visita Mi Blob
n1co

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Mini Reto Python. Dibujar rombo ~
« Respuesta #3 en: 2 Diciembre 2010, 00:46 am »

Buenas muchachos, he hecho el reto! :D publico a ver que tul,
Código
  1. '''
  2. Created on 01/12/2010
  3.  
  4. @author: nicolas
  5. '''
  6.  
  7. import sys
  8.  
  9. def es_par(numero):
  10.    return (numero % 2 == 0)
  11.  
  12. def dibujar_rombo(lineas):
  13.    lineas = int(lineas)
  14.    if es_par(lineas):
  15.        print 'El numero de lineas es par, no puedo escribir un rombo perfecto'
  16.    else:
  17.        espacios = int(lineas / 2)        
  18.        disminuyo = False
  19.        cantidad = 1
  20.        str = ''
  21.        for i in xrange(lineas):
  22.            for n in xrange(espacios):
  23.                str += ' '                
  24.            for n in xrange(cantidad):
  25.                str += '*'
  26.            print str
  27.            if len(str) == lineas:
  28.                disminuyo = True
  29.            if disminuyo:
  30.                cantidad -= 2
  31.                espacios += 1
  32.            else:
  33.                cantidad += 2
  34.                espacios -= 1
  35.            str = ''
  36.  
  37. if __name__ == '__main__':
  38.    dibujar_rombo(sys.argv[1])
  39.    #dibujar_rombo(9)        

Saludos..
En línea

Dnk!

Desconectado Desconectado

Mensajes: 38



Ver Perfil WWW
Re: Mini Reto Python. Dibujar rombo ~
« Respuesta #4 en: 2 Diciembre 2010, 01:03 am »

Ya no queria ser yo el primero, y visto que n1co ya posteo el suyo, ahora me toca a mi.

Código
  1.  
  2. def imprimirRombo(n):
  3.    n = n//2
  4.    for i in range(n,0,-1):
  5.        for j in range(n,(n-(i+1)),-1):
  6.            print '',
  7.        for k in range(i+1,n+1):
  8.            print '*',
  9.        print
  10.    for i in range(0,n):
  11.        for j in range(n,(n-(i+1)),-1):
  12.            print '',
  13.        for k in range(i+1,n+1):
  14.            print '*',
  15.        print
  16.  
  17. imprimirRombo(10)
  18.  
  19.  

Mientras me miro tu code n1co.
xDnk!
En línea




Comentar es agradecer.
Visita Mi Blob
n1co

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Mini Reto Python. Dibujar rombo ~
« Respuesta #5 en: 2 Diciembre 2010, 01:08 am »

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 :D
En línea

Dnk!

Desconectado Desconectado

Mensajes: 38



Ver Perfil WWW
Re: Mini Reto Python. Dibujar rombo ~
« Respuesta #6 en: 2 Diciembre 2010, 01:15 am »

Si, es verdad, si le paso por ejemplo 10, se traga una linea, que la muestra en blanco.

En línea




Comentar es agradecer.
Visita Mi Blob
n1co

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Mini Reto Python. Dibujar rombo ~
« Respuesta #7 en: 2 Diciembre 2010, 01:19 am »

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 Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Mini Reto Python. Dibujar rombo ~
« Respuesta #8 en: 2 Diciembre 2010, 02:14 am »

Yo tengo esto :P
Código
  1. def imprime(n):
  2.    if not n%2:
  3.        print 'El numero de lineas es par, no puedo escribir un rombo perfecto'
  4.    else:
  5.        l = [[' ' for x in range(n)] for z in range(n/2+1)]
  6.        for e in range(n):
  7.            for i in range(e,n-e):
  8.                l[e][i] = '*'
  9.        l = l[:0:-1]+l
  10.        for i in l:
  11.            print ' '.join(i)
  12.  
  13. 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 Desconectado

Mensajes: 15


Ver Perfil
Re: Mini Reto Python. Dibujar rombo ~
« Respuesta #9 en: 2 Diciembre 2010, 02:16 am »

Yo tengo esto :P
Código
  1. def imprime(n):
  2.    if not n%2:
  3.        print 'El numero de lineas es par, no puedo escribir un rombo perfecto'
  4.    else:
  5.        l = [[' ' for x in range(n)] for z in range(n/2+1)]
  6.        for e in range(n):
  7.            for i in range(e,n-e):
  8.                l[e][i] = '*'
  9.        l = l[:0:-1]+l
  10.        for i in l:
  11.            print ''.join(i)
  12.  
  13. imprime(11)

Saludos

jajajaj hay una parte de ahi que me parece conocida...  :P
muy bueno, ya me voy a dormir mañana lo pruebo :D
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python]3 en raya y mini proyecto.
Scripting
braulio-- 2 9,575 Último mensaje 4 Junio 2018, 23:22 pm
por tincopasan
[Python] Ayuda con mini troyano
Scripting
.:Swik:. 3 5,559 Último mensaje 7 Junio 2010, 22:09 pm
por Debci
Reto/Juego Ejercicios en Python « 1 2 3 4 5 »
Ejercicios
Novlucker 47 34,066 Último mensaje 20 Diciembre 2010, 06:47 am
por [L]ord [R]NA
Reto: Números primos en python
Ejercicios
Novlucker 6 10,201 Último mensaje 24 Noviembre 2010, 16:02 pm
por Novlucker
[RETO+Python] Buscando rangos « 1 2 »
Scripting
Novlucker 13 7,606 Último mensaje 31 Enero 2011, 18:30 pm
por Karcrack
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines