Tabla de contenido

  • Asignaciones
  • 1. Introducción general
    • 1.1. El camino del programa
    • 1.2. Algoritmos
    • 1.3. El lenguaje de programación de Python
    • 1.4. Ejecutando Python en este libro
    • 1.5. Más sobre programas
    • 1.6. ¿Qué es la depuración?
    • 1.7. Errores de sintaxis
    • 1.8. Errores de tiempo de ejecución
    • 1.9. Errores semánticos
    • 1.10. Depuración experimental
    • 1.11. Idiomas formales y naturales
    • 1.12. Un primer programa típico
    • 1.13. Comentario
    • 1.14. Glosario
    • 1.15. Ceremonias
  • 2. Datos simples de Python
    • 2.1. Variables, expresiones y declaraciones
    • 2.2. Valores y tipos de datos
    • 2.3. Tipo de funciones de conversión
    • 2.4. Variables
    • 2.5. Nombres de variables y palabras clave
    • 2.6. Declaraciones y expresiones
    • 2.7. Operadores y operandos
    • 2.8. Aporte
    • 2.9. Orden de operaciones
    • 2.10. Reasignación
      • 2.10.1. Desarrollar su modelo mental de cómo se evalúa Python
    • 2.11. Variables de actualización
    • 2.12. Glosario
    • 2.13. Ceremonias
  • 3. Interludio de depuración 1
    • 3.1. Cómo ser un programador exitoso
    • 3.2. Cómo evitar la depuración
    • 3.3. Consejos iniciales para la depuración
    • 3.4. Conozca sus mensajes de error
      • 3.4.1. Perrero
      • 3.4.2. Tipo
      • 3.4.3. Nombre de nombre
      • 3.4.4. ValueError
    • 3.5. Resumen
    • 3.6. Ceremonias
  • 4. Gráficos de tortuga de Python
    • 4.1. ¡Hola pequeñas tortugas!
    • 4.2. Nuestro primer programa de tortuga
    • 4.3. Instancias: una manada de tortugas
    • 4.4. El for Bucle
    • 4.5. Flujo de ejecución del bucle para
    • 4.6. La iteración simplifica nuestro programa de tortuga
    • 4.7. La función de rango
    • 4.8. Algunos métodos y observaciones más de tortuga
    • 4.9. Resumen de métodos de tortuga
    • 4.10. Glosario
    • 4.11. Ceremonias
  • 5. módulos de pitón
    • 5.1. Módulos y ayuda
    • 5.2. Más sobre el uso de módulos
    • 5.3. El de matemáticas módulo
    • 5.4. El aleatorio módulo
    • 5.5. Creación de módulos
    • 5.6. Glosario
    • 5.7. Ceremonias
  • 6. Funciones
    • 6.1. Funciones
    • 6.2. Funciones que devuelven valores
    • 6.3. Prueba unitaria
      • 6.3.1. assert con for bucles
      • 6.3.2. Pruebas de valor de retorno
    • 6.4. Las variables y los parámetros son locales
    • 6.5. El patrón del acumulador
      • 6.5.1. El patrón de acumulador general
      • 6.5.2. Una variación en el patrón del acumulador
    • 6.6. Las funciones pueden llamar a otras funciones
    • 6.7. Resumen de flujo de ejecución
    • 6.8. Usando una función principal
    • 6.9. Desarrollo de programas
    • 6.10. Composición
    • 6.11. Un gráfico de barra de tortuga
    • 6.12. Glosario
    • 6.13. Ceremonias
  • 7. Selección
    • 7.1. Valores booleanos y expresiones booleanas
    • 7.2. Operadores lógicos
      • 7.2.1. Opuestos lógicos
    • 7.3. Precedencia de operadores
    • 7.4. Ejecución condicional: selección binaria
    • 7.5. Omitir la delse : selección unary
    • 7.6. Condicionales anidados
    • 7.7. Condicionales encadenados
    • 7.8. Funciones booleanas
      • 7.8.1. Más pruebas unitarias
    • 7.9. Glosario
    • 7.10. Ceremonias
  • 8. Más sobre la iteración
    • 8.1. Iteración revisitada
    • 8.2. El for bucle revisitado
    • 8.3. El while Declaración
    • 8.4. Tortugas para caminar al azar
    • 8.5. La secuencia 3n + 1
    • 8.6. Método de Newton
    • 8.7. El patrón acumulador revisado
    • 8.8. Otros usos de while
      • 8.8.1. Valores centinela
      • 8.8.2. Validación de entrada
    • 8.9. Algoritmos revisitados
    • 8.10. Mesas simples
    • 8.11. Iteración bidimensional: procesamiento de imágenes
      • 8.11.1. El modelo de color RGB
      • 8.11.2. Objetos de imagen
      • 8.11.3. Procesamiento de imágenes y iteración anidada
    • 8.12. Procesamiento de imágenes por su cuenta
    • 8.13. Glosario
    • 8.14. Ceremonias
  • 9. cuerdas
    • 9.1. Cuerdas revisitadas
    • 9.2. Un tipo de datos de recopilación
    • 9.3. Operaciones en cuerdas
    • 9.4. Operador de índice: trabajar con los caracteres de una cadena
    • 9.5. Métodos de cadena
      • 9.5.1. Método de formato de cadena
    • 9.6. Longitud
    • 9.7. El operador de la rebanada
    • 9.8. Comparación de cadenas
    • 9.9. Las cuerdas son inmutables
    • 9.10. Transversal y el for Bucle: por elemento
    • 9.11. Transversal y el for Bucle: por índice
    • 9.12. Transversal y el while Bucle
    • 9.13. El iny not in operadores
    • 9.14. El patrón del acumulador con cadenas
    • 9.15. Tortugas y cuerdas y sistemas L
    • 9.16. Bucle y recuento
    • 9.17. A find función
    • 9.18. Parámetros opcionales
    • 9.19. Clasificación de personajes
    • 9.20. Resumen
    • 9.21. Glosario
    • 9.22. Ceremonias
  • 10. Listas
    • 10.1. Liza
    • 10.2. Valores de lista
    • 10.3. Longitud de la lista
    • 10.4. Acceso a elementos
    • 10.5. Membresía en la lista
    • 10.6. Concatenación y repetición
    • 10.7. Listar rodajas
    • 10.8. Las listas son mutables
    • 10.9. Eliminación de la lista
    • 10.10. Objetos y referencias
    • 10.11. Alias
    • 10.12. Listas de clonación
    • 10.13. Repetición y referencias
    • 10.14. Métodos de lista
    • 10.15. El retorno de los sistemas L
    • 10.16. Agregar versus concatenate
    • 10.17. Listas y for bucles
    • 10.18. El patrón del acumulador con listas
      • 10.18.1. Acumulando el valor máximo
      • 10.18.2. Acumular un resultado de una cadena
    • 10.19. Uso de listas como parámetros
    • 10.20. Funciones puras
    • 10.21. ¿Cuál es mejor?
    • 10.22. Funciones que producen listas
    • 10.23. Enumere las comprensiones
    • 10.24. Listas anidadas
    • 10.25. Cadenas y listas
    • 10.26. list Tipo de función de conversión
    • 10.27. Tuplas y mutabilidad
    • 10.28. Asignación de tupla
    • 10.29. Tuples como valores de retorno
    • 10.30. Glosario
    • 10.31. Ceremonias
  • 11. Archivos
    • 11.1. Trabajar con archivos de datos
    • 11.2. Encontrar un archivo en su disco
    • 11.3. Leyendo un archivo
    • 11.4. Iterando sobre líneas en un archivo
    • 11.5. Métodos alternativos de lectura de archivos
    • 11.6. Escribir archivos de texto
    • 11.7. Con declaraciones
    • 11.8. Obtener algo de la web
    • 11.9. Glosario
    • 11.10. Ceremonias
  • 12. Dicción
    • 12.1. Diccionarios
    • 12.2. Operaciones de diccionario
    • 12.3. Métodos de diccionario
    • 12.4. Alias ​​y copia
    • 12.5. Matrices escasas
    • 12.6. Glosario
    • 12.7. Ceremonias
  • 13. Excepciones
    • 13.1. ¿Qué es una excepción?
    • 13.2. Manejo de excepciones Flujo de control
      • 13.2.1. Criar y captar errores con tryy except
    • 13.3. Pila de tiempos de runet y raise dominio
    • 13.4. Resumen
    • 13.5. Excepciones estándar
    • 13.6. Principios para usar excepciones
    • 13.7. Sintaxis de excepciones
      • 13.7.1. Atrapar todas las excepciones
      • 13.7.2. Atrapa una excepción específica
      • 13.7.3. Atrapar múltiples excepciones específicas
      • 13.7.4. Limpieza después de excepciones
      • 13.7.5. Un ejemplo de E/S de archivo
    • 13.8. El finally cláusula del try declaración
    • 13.9. Glosario
    • 13.10. Ceremonias
  • 14. Aplicaciones web
    • 14.1. Aplicaciones web
    • 14.2. Cómo funciona la web
    • 14.3. Cómo funcionan las aplicaciones web
    • 14.4. Aplicaciones web y formularios HTML
    • 14.5. Escribir aplicaciones web con Flask
    • 14.6. Más sobre Flask
    • 14.7. Entrada para una aplicación web de Flask
    • 14.8. Aplicaciones web con una interfaz de usuario
    • 14.9. Glosario
  • 15. Programación de GUI y eventos
    • 15.1. Interfaces de usuario gráficas
    • 15.2. Programación de GUI
    • 15.3. Opciones de programación de GUI
    • 15.4. Tkinter
    • 15.5. Interfaces preprogramadas de tkinter
    • 15.6. Interfaces personalizadas tkinter
    • 15.7. Hola Mundo
    • 15.8. Cuadros de diálogo estándar de Tkinter
      • 15.8.1. Mensajes
      • 15.8.2. SÍ/NO PREGUNTAS
      • 15.8.3. Entrada de datos de valor único
      • 15.8.4. Selector de archivos
      • 15.8.5. Selector de color
    • 15.9. Widgets de GUI
    • 15.10. Creación de widgets
    • 15.11. Mangers de diseño
    • 15.12. Especificando dimensiones
    • 15.13. de lugar Manager de diseño
    • 15.14. de cuadrícula Gerente de diseño
    • 15.15. paquete Administrador de diseño de
      • 15.15.1. Resumen
    • 15.16. Agrupaciones de widgets
    • 15.17. Eventos de comando
    • 15.18. Hola mundo de nuevo
    • 15.19. Otros eventos
    • 15.20. Procesamiento de eventos de bajo nivel
    • 15.21. Enfocar
    • 15.22. Vinculación de eventos
    • 15.23. Descriptores de eventos
    • 15.24. Objetos de eventos
    • 15.25. Procesamiento de eventos
    • 15.26. El diseño de los programas de GUI
    • 15.27. Propiedades de widget comunes
    • 15.28. Propiedades de widget específicas
    • 15.29. Atributos de widget
    • 15.30. Eventos de temporizador
      • 15.30.1. Animaciones y tareas repetidas
      • 15.30.2. Cancelar eventos de temporizador
      • 15.30.3. Múltiples parámetros a las devoluciones de llamada del temporizador
    • 15.31. Un ejemplo de programación
      • 15.31.1. Un juego de Whack-A-Mole
      • 15.31.2. Resumen
    • 15.32. Gestión de la complejidad del programa GUI
      • 15.32.1. Creando la vista
      • 15.32.2. Creando el modelo
      • 15.32.3. Creando el controlador
    • 15.33. Ceremonias
    • 15.34. Glosario
  • 16. Recuración
    • 16.1. ¿Qué es la recursión?
    • 16.2. Calculando la suma de una lista de números
    • 16.3. Las tres leyes de recursión
    • 16.4. Convertir un entero en una cadena en cualquier base
    • 16.5. Visualización de la recursión
    • 16.6. Triángulo sierpin
    • 16.7. Glosario
    • 16.8. Ejercicios de programación
    • 16.9. Ceremonias
  • 17. Clases y objetos: los conceptos básicos
    • 17.1. Programación orientada a objetos
    • 17.2. Un cambio de perspectiva
    • 17.3. Objetos revisitados
    • 17.4. Clases definidas por el usuario
    • 17.5. Mejora de nuestro constructor
    • 17.6. Agregar otros métodos a nuestra clase
    • 17.7. Objetos como argumentos y parámetros
    • 17.8. Convertir un objeto a una cadena
    • 17.9. Instancias como valores de retorno
    • 17.10. Glosario
    • 17.11. Ceremonias
  • 18. Clases y objetos: cavar un poco más profundo
    • 18.1. Fracciones
    • 18.2. Los objetos son mutables
    • 18.3. Igualdad
    • 18.4. Métodos aritméticos
    • 18.5. Glosario
    • 18.6. Ceremonias
  • 19. Herencia
    • 19.1. Pilares de OOP
    • 19.2. Introducción a la herencia
    • 19.3. Extensión
    • 19.4. Reutilización a través de la composición
    • 19.5. Diagramas de clases
    • 19.6. Composición vs. herencia
    • 19.7. Estudio de caso: direcciones postales estructuradas
      • 19.7.1. Almacenamiento de direcciones postales
      • 19.7.2. Almacenamiento de direcciones internacionales
      • 19.7.3. Herencia aplicada
      • 19.7.4. Una lista de direcciones
      • 19.7.5. Usando isinstance
  • 20. Pruebas unitarias
    • 20.1. Introducción: Pruebas unitarias
    • 20.2. Verificación de suposiciones con assert
      • 20.2.1. Diseño de funciones defensivas
      • 20.2.2. El assert Declaración
      • 20.2.3. Más assert y condiciones previas
    • 20.3. Funciones de prueba
      • 20.3.1. Pruebas unitarias automatizadas
      • 20.3.2. Pruebas unitarias automatizadas con assert
      • 20.3.3. Las pruebas unitarias pueden tener errores
    • 20.4. Diseño de funciones comprobables
      • 20.4.1. Diseño por contrato
    • 20.5. Pruebas unitarias de escritura
      • 20.5.1. Prueba basada en especificaciones
    • 20.6. Desarrollo de prueba primero
      • 20.6.1. Beneficios del desarrollo de prueba primero
    • 20.7. Prueba con Pytest
      • 20.7.1. Organización de funciones de Pytest
      • 20.7.2. Usando pytest
      • 20.7.3. Comprender los informes de falla de Pytest
      • 20.7.4. Prueba de unidad integrada con pytest
    • 20.8. Glosario
    • 20.9. Ceremonias
  • 21. Artículos ocultos

Labs

Laboratorios

  • Animación de astronomía
  • Laboratorio de carreras de tortuga
  • Dibujo un círculo
  • Lecciones de un triángulo
  • Finalmente un círculo
  • Contando cartas
  • Histograma de conteo de letras
  • Aproximando el valor de Pi
  • Python más allá del navegador
  • Experimentando con la secuencia 3n+1
  • Trazar una ola sinusoidal

Appendices

Apéndices

  • Depuración
  • Usar Python en un ide
  • Tabla de precedencia del operador
  • test código fuente del módulo

Acknowledgements

Agradecimientos

  • Aviso de derechos de autor
  • Prefacio a la edición interactiva
  • ¿Cuál es el trato con el inicio de sesión?
  • Cómo contribuir
  • Agradecimientos
  • Prefacio
  • Prefacio a la tercera edición
  • La edición local de Rhodes (RLE)
  • Prefacio a la primera y segunda edición
  • Lista de contribuyentes
  • Licencia de documentación gratuita de GNU
  • Anexo: cómo usar esta licencia para sus documentos