Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Python
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-04-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 18
Chris Va por buen camino
¿No sabes Python? no hay problema...

Quiero estrenar este nuevo foro compartiendo uno de los mejores cursos para Python que hay. Se llama Dive into Python, o Inmersión en Python. Es un libro gratuito pensado para las personas que desconocen el lenguaje pero ya tienen experiencia en otros lenguajes de programación.

Además, pueden leer un poco acerca del lenguaje en la Wikipedia si les interesa saber un poco sobre él antes de darle una leída al curso.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #2  
Antiguo 01-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Gracias Chris por la aportación, muy buen libro.

Solo agregar que otra buena fuente de información es la propia documentación de Python, disponible en su sitio web, en la sección de documentación.

Saludos.
Responder Con Cita
  #3  
Antiguo 01-04-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 18
Chris Va por buen camino
Cita:
Empezado por D-MO Ver Mensaje
Gracias Chris por la aportación, muy buen libro.

Solo agregar que otra buena fuente de información es la propia documentación de Python, disponible en su sitio web, en la sección de documentación.

Saludos.
Ahhh claro que también es buena! Gracias por complementar mi post. Si tú o alguien más sabe de alguna otra buena fuente para aprender el lenguaje invito a que la comparta. Así nos beneficiamos todos.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 01-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo tengo ese libro y otro similar de wxPython. Y digo los tengo porque como no soy muy dado a la lectura en línea de coasa de más de tres párrafos, los encargué en su versión impresa.

En su momento, cuando les eché una ojeada me parecieon muy buenos.

// Saludos
Responder Con Cita
  #5  
Antiguo 01-04-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Question

¡Que bueno está ésto!...un lenguaje más para aprender...
Haber los que ya manejan éste lenguaje de programación, podrían sugerirnos que IDE existen en la actualidad para programar en Python, dada sus experiencias con éste lenguaje?...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #6  
Antiguo 01-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No estoy entrado en el tema pero el Eric luce bien. Está escrito en Python y por ende es multiplataforma.

// Saludos
Responder Con Cita
  #7  
Antiguo 01-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por roman Ver Mensaje
No estoy entrado en el tema pero el Eric luce bien. Está escrito en Python y por ende es multiplataforma.
Hace mucho que he leido sobre el tal eric esi y nunca he tenido la oportunidad de conocerlo , que falta de amabilidad la mía.

Desde que empecé con python lo he usado con gedit y no me quejo. Así me he obligado a memorizar mejor el lenguaje. Hace apenas unas dos o tres semanas le dí una oportunidad al pydev, que es un plugin de eclipse. Nunca me ha agradado del todo eclipse, un devorador de recursos, pero el pydev me ha simpatizado bastante. En la oficina, donde tengo una core2quad+4GBram+debian no tengo problemas en usarlo, ni se siente ... Pero en mi laptop celeron+1GBram+debian si va un poco mal, aquí si sigo usando gedit.

Les recomiendo que lo prueben, para que se den una idea de el y quizá a ustedes les funcione mejor, de la mano con eric (que yo lo empezaré a probar hoy mismo) para que cada uno saque sus propias conclusiones.

Saludos.
Responder Con Cita
  #8  
Antiguo 02-04-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Chris Ver Mensaje
Quiero estrenar este nuevo foro compartiendo uno de los mejores cursos para Python que hay. Se llama Dive into Python, o Inmersión en Python. Es un libro gratuito pensado para las personas que desconocen el lenguaje pero ya tienen experiencia en otros lenguajes de programación.
Gracias por la referencia, Chris.

Ya descargué e instalé un acceso directo al PDF. Leyendo algunos párrafos se me hizo algo tarde para comer, pero ha valido la pena.

Me uno a la inquietud de Roberto sobre qué IDE sería el recomendable. Eché un vistazo a las pantallas del mencionado por Román, y también me gustó. ¿Más sugerencias sobre IDEs? Quisiera descargar uno y empezar a probar los ejemplos este fin de semana.

Agrego: De lo que he leído, no me ha gustado que el método index de las listas eleve una excepción en lugar de devolver -1 o algo por el estilo. ¿Se puede crear una clase derivada de lista para añadirle un método "IndexOf" más amable? Y, derivado de esto, otra pregunta: ¿todos los métodos de Python son redefinibles, es decir, como los métodos virtuales de Delphi?

Última edición por Al González fecha: 02-04-2011 a las 00:30:22.
Responder Con Cita
  #9  
Antiguo 02-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
Agrego: De lo que he leído, no me ha gustado que el método index de las listas eleve una excepción en lugar de devolver -1 o algo por el estilo. ¿Se puede crear una clase derivada de lista para añadirle un método "IndexOf" más amable? Y, derivado de esto, otra pregunta: ¿todos los métodos de Python son redefinibles, es decir, como los métodos virtuales de Delphi?
Con respecto a esto, si puedes sobreescribir un método o crear uno nuevo, lo que cambiará será la forma en que declares una lista, ya que con Python basta con que hagas algo como "a = [ ]" para decir que a es una lista, pero si creas una clase propia con este método entonces deberás decir que "a = myList()" previo a su uso y la clase myList deberá heredar de la clase list.

Un ejemplo de ello sería algo como:
Código:
class myList(list):
    
    def indexOf(self, value):
        try:
            return self.index(value)
        except ValueError:
            return -1
            

a = myList()

print a.indexOf('xxx')
También podrías sobreescribir el mismo método index, eso lo dejo de tarea

Saludos.

Edito:
Acá el como probarlo con ambos casos, exista o no el elemento en la lista

Código:
a = myList()
b = myList()
b.append('xxx')

print a.indexOf('xxx')
print b.indexOf('xxx')

Última edición por D-MO fecha: 02-04-2011 a las 01:02:43. Razón: Extendiendo las pruebas
Responder Con Cita
  #10  
Antiguo 02-04-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por D-MO Ver Mensaje
[...] También podrías sobreescribir el mismo método index, eso lo dejo de tarea
Gracias D-MO, sin duda será interesante ver cómo se redefine (para lo que en Delphi se usa "Override") un método.
Responder Con Cita
  #11  
Antiguo 02-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
Gracias D-MO, sin duda será interesante ver cómo se redefine (para lo que en Delphi se usa "Override") un método.
Por nada Al, para eso estamos .

Por cierto, cuando escribí el post de arriba estaba por salir de la oficina y en mi afán de responder a tu pregunta olvidé que sería un error devolver -1 como posición en una lista en Python, puesto que el -1 es utilizado para hacer referencia a los elementos en la lista en orden inverso, así -1 es el último, -2 el penúltimo, etc... Lo correcto sería devolver None para indicar la ausencia del elemento en la lista.

Así, si tenemos:
Código:
x = ['a','b','c']
y decimos
Código:
print x[-1]
obtenemos
Código:
c
La clase myList entonces debería quedar:
Código:
class myList(list):
    
    def indexOf(self, value):
        try:
            return self.index(value)
        except ValueError:
            return None
Saludos
Responder Con Cita
  #12  
Antiguo 02-04-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¡¡¡Que extraño!!!, ¿no?
Responder Con Cita
  #13  
Antiguo 02-04-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por D-MO Ver Mensaje
La clase myList entonces debería quedar:
Código:
class myList(list):
    
    def indexOf(self, value):
        try:
            return self.index(value)
        except ValueError:
            return None
Saludos
Quiero pensar que, como en Delphi sería menos costoso evitar la excepción:

Código:
def IndexOf (self, Value):
  if Value in self:
    return self.index (Value)
  else:
    return None
¿Voy bien?

Interesante también lo referente a uso de self: http://es.wikipedia.org/wiki/Python#Clases
Responder Con Cita
  #14  
Antiguo 02-04-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¡¡¡Que extraño!!!, ¿no?
Para los que estamos acostumbrados a la carcelaria libertad de las llaves o del begin y end, sí.
Responder Con Cita
  #15  
Antiguo 02-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¡¡¡Que extraño!!!, ¿no?
Un poco casi, un poco

Cita:
Empezado por Al González Ver Mensaje
Código:
def IndexOf (self, Value):
  if Value in self:
    return self.index (Value)
  else:
    return None
¿Voy bien?
Pues Al, el código es funcional, pero, ¿para que evadir el try?
Responder Con Cita
  #16  
Antiguo 02-04-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por D-MO Ver Mensaje
Pues Al, el código es funcional, pero, ¿para que evadir el try?
Pues para:

1. Hacer más ágil la ejecución. Dudo mucho que el mecanismo de elevar y atrapar una excepción, en cualquier lenguaje, sea más rápido y ligero que preguntar antes de intentar.

2. Hacer más legible el código. Como lo he puesto me parece queda más claro.

3. Evitar asunciones. Como lo has puesto das por sentado que si se eleva una excepción es porque el elemento no existe en la lista (¿y si sucede por otro motivo?).

Es mi punto de vista al respecto.
Responder Con Cita
  #17  
Antiguo 02-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
...Es mi punto de vista al respecto.
Los tres puntos que indicas me parecen aceptables, en la medida de lo posible los iré aplicando. Todos los días se aprende algo nuevo.

Saludos.
Responder Con Cita
  #18  
Antiguo 02-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
En efecto, tienes la razón en el primer punto, explico:
Teniendo las dos opciones, a y b en los archivos a.py y b.py de la siguiente manera:

a.py
Código:
class myList(list):
    
    def indexOf(self, value):
        try:
            return self.index(value)
        except ValueError:
            return None

x = myList()

print 'A:', x.indexOf('test')
b.py
Código:
class myList(list):
    
    def indexOf(self, value):
        if value in self:
            return self.index(value)
        else:
            return None

x = myList()

print 'B:', x.indexOf('test')
Se obtiene como resultado lo siguiente:

Código:
~/tmp$ time python a.py
A: None

real	0m0.046s
user	0m0.028s
sys	0m0.000s

~/tmp$ time python b.py
B: None

real	0m0.033s
user	0m0.024s
sys	0m0.000s
Gracias por el aporte

Saludos.
Responder Con Cita
  #19  
Antiguo 02-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por D-MO Ver Mensaje
sería un error devolver -1 como posición en una lista en Python, puesto que el -1 es utilizado para hacer referencia a los elementos en la lista en orden inverso, así -1 es el último, -2 el penúltimo, etc...
En algún momento, hice un pequeño e incompleto resumen del usos de listas para no confundirme con el acceso por índices. Lo adjunto aquí por si sirve de algo.

// Saludos
Archivos Adjuntos
Tipo de Archivo: zip python.listas.zip (908 Bytes, 6 visitas)
Responder Con Cita
  #20  
Antiguo 02-04-2011
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.408
Poder: 22
fjcg02 Va camino a la fama
Podeis encontrar más información en

http://mundogeek.net/tutorial-python/

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como sabes la IP del cliente con idTCPServer fide_uci Internet 1 13-11-2009 07:40:12
Tutorial de Python 'Python para todos' marcoszorrilla Noticias 11 15-02-2009 06:19:15
Si no sabes leer, éste es tu post... Gabo Humor 4 06-06-2008 01:15:27
20 cosas que no sabes sobre Google marcoszorrilla La Taberna 6 05-06-2008 21:30:35
¿Qué Tanto Sabes De La Vasectomía? gmontes Humor 4 10-12-2005 10:15:05


La franja horaria es GMT +2. Ahora son las 11:22:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi