PDF de programación - Python no muerde, yo sí

Imágen de pdf Python no muerde, yo sí

Python no muerde, yo sígráfica de visualizaciones

Actualizado el 20 de Marzo del 2020 (Publicado el 14 de Enero del 2017)
1.722 visualizaciones desde el 14 de Enero del 2017
6,7 MB
164 paginas
Creado hace 24a (01/01/2000)
Python no MuerdeYo Sí.por Roberto Alsina Este libro está disponible bajo una licencia CC-by-nc-sa-2.5.

Es decir que usted es libre de:

Copiar, distribuir, exhibir, y ejecutar la obra

Hacer obras derivadas

Bajo las siguientes condiciones:

Atribución — Usted debe atribuir la obra en la forma
especificada por el autor o el licenciante.

No Comercial — Usted no puede usar esta obra con fines
comerciales.

Compartir Obras Derivadas Igual — Si usted altera, transforma, o
crea sobre esta obra, sólo podrá distribuir la obra derivada
resultante bajo una licencia idéntica a ésta.

El texto completo de la licencia está en el apéndice “LICENCIA” al final del
libro.

La “solpiente” fue creada por Pablo Ziliani, y licenciada bajo una licencia
CC-by-sa-2.5, más detalles en http://creativecommons.org/licenses/by-sa/2.5/ar/

2

Autor: Roberto Alsina <[email protected]>

Versión:

8e80f80bdea9

3

Introducción

Introducción

Requisitos
Éste es un libro sobre Python 1. Es un libro que trata de explicar una manera
posible de usarlo, una manera de tomar una idea de tu cabeza y convertirla en
un programa, que puedas usar y compartir.

1

¿Por qué Python? Porque es mi lenguaje favorito. ¿De qué otro lenguaje
podría escribir?

¿Qué necesitás saber para poder leer este libro?

El libro no va a explicar la sintaxis de python, sino que va a asumir que la
conocés. De todas formas, la primera vez que aparezca algo nuevo, va a indicar
dónde se puede aprender más sobre ello. Por ejemplo:

# Creamos una lista con los cuadrados de los números pares
cuadrados = [ x**2 for x in numeros if x%2 == 0 ]

Referencia

Eso es una comprensión de lista

En general esas referencias van a llevarte al Tutorial de Python en castellano.
Ese libro contiene toda la información acerca del lenguaje que se necesita para
poder seguir éste.
Cuando una aplicación requiera una interfaz gráfica, vamos a utilizar PyQt 2. No
vamos a asumir ningún conocimiento previo de PyQt pero tampoco se va a
explicar en detalle, excepto cuando involucre un concepto nuevo.
Por ejemplo, no voy a explicar el significado de setEnabled 3 pero sí el
concepto de signals y slots cuando haga falta.

4

Convenciones

2

PyQt es software libre, es multiplataforma, y es muy potente y fácil de
usar. Eso no quiere decir que las alternativas no tengan las mismas
características, pero quiero enfocarme en programar, no en discutir, y
yo prefiero PyQt. Si preferís una alternativa, este libro es libre: podés
hacer una versión propia!

3

PyQt tiene una excelente documentación de referencia para esas cosas.

Convenciones
Las variables, funciones y palabras reservadas de python se mostrarán en el
texto con letra monoespaciada. Por ejemplo, for es una palabra reservada.

Los fragmentos de código fuente se va a mostrar así:

# Creamos una lista con los cuadrados de los números impares
cuadrados = [ x**2 for x in numeros if x%2 > 0 ]

Los listados extensos o programas completos se incluirán sin cajas, mostrarán
números de líneas e indicarán el nombre del mismo:

cuadrados.py

1 # Creamos una lista con los cuadrados de los números impares
2 cuadrados = [ x**2 for x in numeros if x%2 > 0 ]

En ese ejemplo, debería haber, en los ejemplos que acompañan al libro, un
archivo codigo/X/cuadrados.py donde X es el número del capítulo en el que
el listado aparece.

Lenguaje
Las discusiones acerca de como escribir un libro técnico en castellano son
eternas. Que en España se traduce todo todo todo. Que en Argentina no. Que
decir “cadena de caracteres” en lugar de string es malo para la ecología.

Por suerte en este libro hay un único criterio superador que ojalá otros libros
adopten: Está escrito como escribo yo. Ni un poquito distinto. No creo que
siquiera califique como castellano, como mucho está escrito en argentino. Si a
los lectores de la ex madre patria les molesta el estilo… tradúzcanlo.

5

Mapa

Mapa
Dentro de lo posible, voy a intentar que cada capítulo sea autocontenido,
explicando un tema sin depender demasiado de los otros, y terminando con un
ejemplo concreto y funcional.

Éstos son los capítulos del libro, con breves descripciones.

1. Introducción
2. Pensar en python

Programar en python, a veces, no es como programar en otros lenguajes.
Acá vas a ver algunos ejemplos. Si te gustan… python es para vos. Si no te
gustan… bueno, el libro es barato… capaz que Java es lo tuyo..

3. La vida es corta

Por eso, hay muchas cosas que no vale la pena hacer. Claro, yo estoy
escribiendo un editor de textos así que este capítulo es pura hipocresía…

4. Las capas de una aplicación

Batman, los alfajores santafesinos, el ozono… las mejores cosas tienen
capas. Cómo organizar una aplicación en capas.

5. Documentación y testing

Documentar es testear. Testear es documentar.

6. La GUI es la parte fácil

Lo difícil es saber que querés. Lamentablemente este capítulo te muestra
lo fácil. Una introducción rápida a PyQt.

7. Diseño de interfaz gráfica

Visto desde la mirada del programador. Cómo hacer para no meterse en
un callejón sin salida. Cómo hacerle caso a un diseñador.

8. Un programa útil

Integremos las cosas que vimos antes y usémoslas para algo.

9. Instalación, deployment y otras yerbas

Hacer que tu programa funcione en la computadora de otra gente

10. Cómo crear un proyecto de software libre

6

Mapa

¿Cómo se hace? ¿Qué se necesita? ¿Me conviene? Las respuestas son
“depende”, “ganas” y “a veces”. O “así”, “una idea” y “sí”. O sea, no sé.
Pero veamos.

11. Rebelión contra el Zen

Cuándo es mejor
suficientemente especial para ser, realmente, especial?

implícito que explícito? ¿Cuándo es algo

lo

12. Herramientas

Programar tiene más en común con la carpintería que con la arquitectura.

13. Conclusiones, caminos y rutas de escape

¿Y ahora qué?

Este es un diagrama de dependencias. Cada capítulo tiene flechas que lo
conectan desde los capítulos que necesitás haber leído anteriormente.

Con suerte será un grafo acíclico.

La línea de puntos significa ‘no es realmente necesario, pero…’

Este libro se lee siguiendo las flechas.

7

12113457689101312 Acerca del Autor

Acerca del Autor
Habrá que pedirle a alguien que ponga algo no demasiado insultante.

8

Acerca del Autor

Contenidos
Introducción
Requisitos

Convenciones

Lenguaje

Mapa

Acerca del Autor

Pensar en Python

Get/Set

Singletons

Loops y medios loops

Switches

Patos y Tipos

Genéricos

Decoradores

Claro pero corto pero claro

Lambdas vs alternativas

Ternarios vs ifs

Pedir perdón o pedir permiso

La vida es Corta
El Problema

Twill

Bottle

Autenticación

Storm

HTML / Templates

9

4
4

5

5

6

8
13
13

17

21

22

23

25

28

33

35

37

38
41
42

44

46

49

56

62

Acerca del Autor

Backend

Conclusiones

Las Capas de una Aplicación

Proyecto

El Problema

Capa de Datos: Diseño e Implementación

Elementos

Campos

Diseño

Capa de Lógica: Diseño

Capa de Interfaz: Diseño

Documentación y Testing

Docstrings

Doctests

Cobertura

Límites de los doctests

Lo anterior, hecho distinto

Mocking

La Máquina Mágica

Sacando tu programa a pasear: Tox

Testear todo el tiempo: Sniffer

Integración continua: Jenkins

Documentos, por favor

La GUI es la Parte Fácil

Proyecto

Programación con Eventos

10

66

70
71
72

72

74

74

75

75

77

77
78
79

80

85

87

88

89

92

96

100

100

100
103
103

104

Acerca del Autor

Ventanas / Diálogos

Mostrando una Ventana

¡Que haga algo!

Icono de Notificación

Acciones

Ruido

Diseño de Interfaz Gráfica

Proyecto

Corrigiendo la Interfaz Gráfica

¿Qué estamos haciendo?

Pulido

Nombres y Descripciones

Uso Desde el Teclado

Traducciones

Feedback

Un Programa Útil

Proyecto

Instalación, Deployment y Otras Yerbas
Cómo Crear un Proyecto de Software Libre
Rebelión Contra el Zen
Herramientas
Conclusiones, Caminos y Rutas de Escape
Licencia de este libro
Agradecimientos
El Meta-Libro

Código

11

106

113

115

119

120

123
127
129

129

132

136

137

137

139

144
147
147
148
149
150
151
152
153
160
161
162

162

162

163

163

163

163

163

164

Acerca del Autor

Gráficos

Build

Feedback

Tipografía

HTML

Server

Versionado

Licencia

12

Pensar en Python

Pensar en Python

Lo triste es que esta pobre gente trabajó mucho más de lo
necesario, para producir mucho más código del necesario,
que funciona mucho más lento que el código python
idiomático correspondiente.

Phillip J. Eby en Python no es Java

Nuestra misión en este capítulo es pensar en qué quiere decir Eby con “código
python idiomático” en esa cita. Nunca nadie va a poder hacer un pythonómetro
que te mida cuán idiomático es un fragmento de código, pero es posible
desarrollar un instinto, una “nariz” para sentir el “olor a python”, así como un
enófilo 4 aprende a distinguir el aroma a clavos de hierro-níquel número 7
ligeramente oxidados en un Cabernet Sauvignon. 5

4

5

En mi barrio los llamábamos curdas.

Con la esperanza de ser un poco menos pretencioso y/o chanta, si Zeus
quiere.

Y si la mejor forma de conocer el vino es tomar vino, la mejor forma de conocer
el código es ver código. Este capítulo no es exhaustivo, no muestra todas las
maneras en que python es peculiar, ni todas las cosas que hacen que tu código
sea “pythonic” — entre otros motivos porque no las conozco — pero muestra
varias. El resto es cuestión de gustos.

Get/Set
Una instancia de una clase contiene valores. ¿Cómo se accede a ellos? Hay dos
maneras. Una es con “getters y setters”, y estas son algunas de sus
manifestaciones:

# Un getter te "toma" (get) un valor de adentro de un objeto y
# se puede ver así:
x1 = p.x()
x1 = p.get_x()
x1 = p.getX()

# Un setter "mete" un valor en un objeto y puede verse así:
p.set_x(x1)
p.setX(x1)

13

Pensar en Python

Otra manera es simplemente usa
  • Links de descarga
http://lwp-l.com/pdf431

Comentarios de: Python no muerde, yo sí (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad