FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
¿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 |
#2
|
||||
|
||||
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. |
#3
|
||||
|
||||
Cita:
Saludos, Chris |
#4
|
||||
|
||||
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 |
#5
|
||||
|
||||
¡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
|
#7
|
||||
|
||||
Cita:
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. |
#8
|
||||
|
||||
Cita:
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. |
#9
|
||||
|
||||
Cita:
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') 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 |
#10
|
||||
|
||||
Gracias D-MO, sin duda será interesante ver cómo se redefine (para lo que en Delphi se usa "Override") un método.
|
#11
|
||||
|
||||
Cita:
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'] Código:
print x[-1] Código:
c Código:
class myList(list): def indexOf(self, value): try: return self.index(value) except ValueError: return None |
#12
|
||||
|
||||
¡¡¡Que extraño!!!, ¿no?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#13
|
||||
|
||||
Cita:
Código:
def IndexOf (self, Value): if Value in self: return self.index (Value) else: return None Interesante también lo referente a uso de self: http://es.wikipedia.org/wiki/Python#Clases |
#14
|
||||
|
||||
Para los que estamos acostumbrados a la carcelaria libertad de las llaves o del begin y end, sí.
|
#15
|
||||
|
||||
Un poco casi, un poco
Pues Al, el código es funcional, pero, ¿para que evadir el try? |
#16
|
||||
|
||||
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. |
#17
|
||||
|
||||
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. |
#18
|
||||
|
||||
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') 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') 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 Saludos. |
#19
|
||||
|
||||
Cita:
// Saludos |
#20
|
||||
|
||||
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
|
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 |
|