Introducción a Python
Si quieres programar con Python, ¡has venido al lugar adecuado! Da tus primeros pasos con este curso intensivo de Python que te enseña a utilizar los elementos básicos del lenguaje, desde variables hasta ramificaciones y bucles. Sigue las instrucciones de los expertos para trabajar con tipos de datos, funciones y módulos, y aprende a gestionar errores y excepciones sobre la marcha. Aplica la programación en Python para desarrollar bases de datos, interfaces gráficas de usuario, widgets y mucho más. Practica tus habilidades con ejercicios de ejemplo y empieza a desarrollar tus propias aplicaciones con Python hoy mismo.
- Desarrolle sus propios programas en Python, paso a paso.
- Comprender cómo trabajar con variables, operadores, bucles, tipos de datos, funciones y módulos.
- Sigue ejercicios detallados para crear aplicaciones Python, interfaces gráficas de usuario y mucho más.
Aprenderás sobre:
- Conceptos básicos del lenguaje:
Aprenda los fundamentos de Python, desde la instalación inicial hasta la ejecución de su primer programa. Domine conceptos básicos como variables, ramificaciones, bucles, funciones y módulos; luego trabaje con tipos de datos como enteros, cadenas y tuplas.
- Python en la práctica:
Aplica la programación en Python en escenarios clave de desarrollo. Utiliza Python para la programación orientada a objetos, crea e identifica subprocesos, gestiona archivos y directorios, desarrolla bases de datos con SQLite y MySQL, y mucho más.
- Ejemplos de ejercicios:
Adquiera experiencia práctica con ejercicios de programación. Siga un ejemplo de desarrollo de juegos a medida que avanza de capítulo en capítulo. ¡En poco tiempo estará listo para crear sus propias aplicaciones con Python!
Aspectos Destacados:
- Instalación
- Fundamentos del lenguaje Python
- Programación orientada a objetos
- Manejo de errores
- Tipos de datos
- Multiprocesamiento
- Procesamiento de archivos
- Bases de datos
- Programación de interfaces gráficas de usuario
- PyQt
- Ejemplos de ejercicios
Ver Tabla de Contenidos Completa
- Materiales para este libro
- 1 Introducción
- 1.1 Ventajas de Python
- 1.2 Prevalencia de Python
- 1.3 Estructura de este libro
- 1.4 Ejercicios
- 1.5 Instalación en Windows
- 1.6 Instalación en Ubuntu Linux
- 1.7 Instalación en macOS
- 2 Introducción
- 2.1 Python como calculadora
- 2.1.1 Introducción de cálculos
- 2.1.2 Suma, resta y multiplicación
- 2.1.3 División, división entera y módulo
- 2.1.4 Clasificación y paréntesis
- 2.1.5 Ejercicio
- 2.1.6 Variables y asignación
- 2.1.7 Ejercicio
- 2.2 Nuestro primer programa
- 2.2.1 Hola, mundo
- 2.2.2 Ingresar a un programa
- 2.3 Guardar y ejecutar
- 2.3.1 Guardar
- 2.3.2 Ejecución en Windows
- 2.3.3 Ejecución en Ubuntu Linux y macOS
- 2.3.4 Comentarios
- 2.3.5 Concatenación de salidas
- 2.3.6 Resultados a largo plazo
- 3 Curso de programación
- 3.1 Programación de un juego
- 3.2 Variables y operadores
- 3.2.1 Asignación, cálculo y salida
- 3.2.2 Literales de cadena
- 3.2.3 Introducción de una cadena
- 3.2.4 Introducir un número
- 3.2.5 Nuestro juego: versión con entrada
- 3.2.6 Ejercicios
- 3.2.7 Números aleatorios
- 3.2.8 Determinación de un tipo
- 3.3 Sucursales
- 3.3.1 Operadores de comparación
- 3.3.2 Ramificación utilizando if
- 3.3.3 Nuestro juego: versión con evaluación de entradas
- 3.3.4 Ejercicio
- 3.3.5 Ramas múltiples
- 3.3.6 Ejercicio
- 3.3.7 Expresión condicional
- 3.3.8 Operadores lógicos
- 3.3.9 Ejercicios
- 3.3.10 Operadores de comparación múltiple
- 3.3.11 Nuestro juego: versión con evaluación exacta de la entrada
- 3.3.12 Rama con coincidencia
- 3.3.13 Orden de las operaciones
- 3.4 Bucles
- 3.4.1 Bucles con for
- 3.4.2 Terminar un bucle utilizando break
- 3.4.3 Continuar un bucle con continue
- 3.4.4 Estructuras de control anidadas
- 3.4.5 Nuestro juego: versión con bucle «for» y abortar
- 3.4.6 Bucles con for y range()
- 3.4.7 Ejercicios
- 3.4.8 Nuestro juego: versión con range()
- 3.4.9 Bucle con while
- 3.4.10 Nuestro juego: versión con bucle while y contador
- 3.4.11 Ejercicio
- 3.4.12 Expresiones de asignación combinadas
- 3.5 Desarrollo de un programa
- 3.6 Errores y excepciones
- 3.6.1 Programa básico
- 3.6.2 Interceptar errores
- 3.6.3 Emisión de un mensaje de error
- 3.6.4 Repetir una entrada
- 3.6.5 Ejercicio
- 3.6.6 Nuestro juego: versión con manejo de excepciones
- 3.7 Funciones y módulos
- 3.7.1 Funciones simples
- 3.7.2 Funciones con un parámetro
- 3.7.3 Ejercicio
- 3.7.4 Funciones con múltiples parámetros
- 3.7.5 Funciones con valor de retorno
- 3.7.6 Nuestro juego: versión con funciones
- 3.7.7 Ejercicios
- 3.8 Sugerencias de tipo
- 3.8.1 Variables y comprobaciones de tipos
- 3.8.2 Funciones y verificaciones de tipos
- 3.9 El juego terminado
- 4 Tipos de datos
- 4.1 Números
- 4.1.1 Números enteros
- 4.1.2 Números con decimales
- 4.1.3 Operador exponencial **
- 4.1.4 Redondeo y conversión
- 4.1.5 Funciones trigonométricas
- 4.1.6 Otras funciones matemáticas
- 4.1.7 Cifras más precisas con decimales
- 4.1.8 Números complejos
- 4.1.9 Operadores de bits
- 4.1.10 Fracciones
- 4.2 Cadenas de caracteres
- 4.2.1 Propiedades
- 4.2.2 Operadores
- 4.2.3 Porciones
- 4.2.4 Mutabilidad
- 4.2.5 Buscar y reemplazar
- 4.2.6 Eliminación de espacios en blanco
- 4.2.7 Descomposición de textos
- 4.2.8 Constantes
- 4.2.9 El tipo de datos bytes
- 4.3 Listas
- 4.3.1 Propiedades y operadores
- 4.3.2 Listas multidimensionales
- 4.3.3 Mutabilidad
- 4.3.4 Métodos
- 4.3.5 Comprensión de listas
- 4.4 Tuplas
- 4.5 Diccionarios
- 4.5.1 Propiedades, operadores y métodos
- 4.5.2 Vistas dinámicas
- 4.6 Conjuntos
- 4.6.1 Propiedades, operadores y métodos
- 4.6.2 Teoría de conjuntos
- 4.7 Valores de verdad y nada
- 4.7.1 Valores de verdad «Verdadero» y «Falso»
- 4.7.2 La palabra clave Nothing y None
- 4.8 Referencia, identidad y copia
- 4.8.1 Referencia e identidad
- 4.8.2 Ahorro de recursos
- 4.8.3 Copiar objetos
- 4.9 Sugerencias de tipo
- 4.9.1 Una secuencia como parámetro
- 4.9.2 Restricción a una lista
- 5 Programación avanzada
- 5.1 Observaciones generales
- 5.1.1 Operadores de asignación combinados
- 5.1.2 Instrucción en varias líneas
- 5.1.3 Entrada con asistencia
- 5.1.4 La instrucción pass
- 5.2 Salida y formato
- 5.2.1 La función print()
- 5.2.2 Formato de números con decimales
- 5.2.3 Formateo de números enteros
- 5.2.4 Formateo de cadenas
- 5.2.5 Ejercicio
- 5.3 Funciones para iterables
- 5.3.1 La función zip()
- 5.3.2 La función map()
- 5.3.3 La función filter()
- 5.4 Cifrado
- 5.5 Errores y excepciones
- 5.5.1 Observaciones generales
- 5.5.2 Errores de sintaxis
- 5.5.3 Errores de tiempo de ejecución
- 5.5.4 Errores lógicos y depuración
- 5.5.5 Generación de errores
- 5.5.6 Excepciones distintivas
- 5.6 Funciones
- 5.6.1 Número variable de parámetros
- 5.6.2 Parámetros con nombre
- 5.6.3 Parámetros opcionales
- 5.6.4 Valores de retorno múltiples
- 5.6.5 Transferencia de copias y referencias
- 5.6.6 Espacios de nombres
- 5.6.7 Funciones recursivas
- 5.6.8 Funciones lambda
- 5.6.9 Funciones como parámetros
- 5.7 Funciones integradas
- 5.7.1 Las funciones max(), min() y sum()
- 5.7.2 Las funciones chr() y ord()
- 5.7.3 Las funciones reversed() y sorted()
- 5.8 Otros módulos matemáticos
- 5.8.1 Dibujar gráficos de funciones
- 5.8.2 Dibujos parciales múltiples
- 5.8.3 Matrices y vectores unidimensionales
- 5.8.4 Matrices y tablas multidimensionales
- 5.8.5 Procesamiento de señales
- 5.8.6 Funciones estadísticas
- 5.9 Módulos personalizados
- 5.9.1 Creación de módulos personalizados
- 5.9.2 Importación estándar de un módulo
- 5.9.3 Importación y cambio de nombre de un módulo
- 5.9.4 Importación de funciones
- 5.9.5 Ejercicio
- 5.10 Parámetros de la línea de comandos
- 5.11 Programa de «Formación en fracciones»
- 5.11.1 El flujo del programa
- 5.11.2 Programa principal
- 5.11.3 Una tarea fácil
- 5.11.4 Una tarea moderadamente difícil
- 5.11.5 Una tarea difícil
- 6 Programación orientada a objetos
- 6.1 Principios básicos
- 6.1.1 ¿Qué es la programación orientada a objetos?
- 6.1.2 Clases, objetos y métodos personalizados
- 6.1.3 Miembros especiales
- 6.1.4 Ejercicio
- 6.1.5 Métodos del operador
- 6.1.6 Referencia, identidad y copia
- 6.1.7 Concatenación
- 6.1.8 Anidación
- 6.1.9 Ejercicios
- 6.2 Temas avanzados
- 6.2.1 Herencia
- 6.2.2 Ejercicio
- 6.2.3 Herencia múltiple
- 6.2.4 Clases de datos
- 6.2.5 Enumeraciones
- 6.2.6 Nuestro juego: versión orientada a objetos
- 7 Módulos diversos
- 7.1 Fecha y hora
- 7.1.1 El módulo de tiempo
- 7.1.2 Detener un programa
- 7.1.3 La clase timedelta
- 7.1.4 La clase datetime
- 7.1.5 El calendario Clase
- 7.1.6 Nuestro juego: versión con medición del tiempo
- 7.1.7 Nuestro juego: versión orientada a objetos con medición del tiempo
- 7.2 Colas
- 7.2.1 La clase SimpleQueue
- 7.2.2 La clase LifoQueue
- 7.2.3 La clase PriorityQueue
- 7.2.4 La clase deque
- 7.3 Multihilos
- 7.3.1 ¿Para qué se utiliza el multithreading?
- 7.3.2 Creación de un hilo
- 7.3.3 Identificación de un hilo
- 7.3.4 Datos y objetos compartidos
- 7.3.5 Hilos y excepciones
- 7.4 Expresiones regulares
- 7.4.1 Búsqueda de fragmentos de texto
- 7.4.2 Reemplazo de partes del texto
- 7.5 Salida de audio
- 8 archivos
- 8.1 Abrir y cerrar un archivo
- 8.2 Archivos de texto
- 8.2.1 Escribir un archivo de texto
- 8.2.2 Lectura de un archivo de texto
- 8.2.3 Escribir un archivo CSV
- 8.2.4 Lectura de un archivo CSV
- 8.3 Archivos con una estructura definida
- 8.3.1 Redacción con formato
- 8.3.2 Lectura en cualquier posición
- 8.3.3 Escribir en cualquier posición
- 8.4 Serialización con pickle
- 8.4.1 Escribir objetos en archivos
- 8.4.2 Lectura de objetos desde archivos
- 8.5 Intercambio de datos mediante JSON
- 8.5.1 Escribir objetos en archivos
- 8.5.2 Lectura de objetos desde archivos
- 8.6 Edición de varios archivos
- 8.6.1 La función glob.glob()
- 8.6.2 La función os.scandir()
- 8.7 Información sobre los archivos
- 8.8 Administración de archivos y directorios
- 8.9 El proyecto de ejemplo del código Morse
- 8.9.1 Lectura de código Morse desde un archivo
- 8.9.2 Salida en la pantalla
- 8.9.3 Salida con señales sonoras
- 8.10 Nuestro juego: versión con archivo de puntuaciones más altas
- 8.10.1 Ejemplos de entradas
- 8.10.2 Estructura del Programa
- 8.10.3 El Código del Programa
- 8.11 Nuestro juego: versión orientada a objetos con archivo de puntuaciones más altas
- 9 Bases de datos
- 9.1 Estructura de las bases de datos
- 9.2 SQLite
- 9.2.1 Base de datos, tabla y registros de datos
- 9.2.2 Visualización de datos
- 9.2.3 Selección de datos
- 9.2.4 El operador LIKE
- 9.2.5 Clasificación de los resultados
- 9.2.6 Selección después de la inscripción
- 9.2.7 Modificación de registros de datos
- 9.2.8 Eliminación de registros de datos
- 9.2.9 Ejercicio
- 9.3 MySQL
- 9.3.1 XAMPP y Connector/Python
- 9.3.2 Base de datos, tabla y registros de datos
- 9.3.3 Visualización de datos
- 9.4 Nuestro juego: versión con base de datos de puntuaciones más altas
- 9.5 Nuestro juego: versión orientada a objetos con base de datos de puntuaciones más altas
- 10 Interfaces de usuario
- 10.1 Introducción
- 10.1.1 Nuestro primer programa GUI
- 10.1.2 Configuración y disposición
- 10.1.3 Métodos de evento para varios widgets
- 10.2 Tipos de widgets
- 10.2.1 Campo de entrada de una sola línea
- 10.2.2 Entrada oculta y desactivación de un widget
- 10.2.3 Campo de entrada multilínea
- 10.2.4 Cuadro de lista con selección simple
- 10.2.5 Cuadro de lista con opción de selección múltiple
- 10.2.6 Cuadros giratorios
- 10.2.7 Botones de radio y la variable del widget
- 10.2.8 Botones de verificación
- 10.2.9 Deslizadores y escalas
- 10.3 Imágenes y eventos del ratón
- 10.3.1 Insertar y cambiar una imagen
- 10.3.2 Eventos del ratón
- 10.4 El lugar Geometry Manager
- 10.4.1 Tamaño y posición absoluta de la ventana
- 10.4.2 Posición relativa
- 10.4.3 Cambiar la posición
- 10.5 Menús y cuadros de diálogo
- 10.5.1 Barras de menú
- 10.5.2 Menús contextuales
- 10.5.3 Cuadros de diálogo estándar
- 10.5.4 Cuadros de diálogo personalizados
- 10.6 Dibujos y animaciones
- 10.6.1 Objetos de dibujo diversos
- 10.6.2 Control de objetos de dibujo
- 10.6.3 Animación de objetos de dibujo
- 10.6.4 Colisión de objetos de dibujo
- 10.7 Nuestro juego: versión GUI
- 10.8 Ejercicio
- 11 Interfaces de usuario con PyQt
- 11.1 Introducción
- 11.1.1 Nuestro primer programa GUI
- 11.1.2 Configuración y disposición
- 11.1.3 Tamaño de la ventana de la aplicación
- 11.1.4 Métodos de evento para varios widgets
- 11.2 Tipos de widgets
- 11.2.1 Campo de entrada de una sola línea
- 11.2.2 Entradas ocultas y desactivación de widgets
- 11.2.3 Campo de entrada multilínea
- 11.2.4 Lista con una única opción de selección
- 11.2.5 Lista con opciones de selección múltiple
- 11.2.6 Cuadros combinados
- 11.2.7 Cuadros giratorios
- 11.2.8 Botones de radio
- 11.2.9 Grupos múltiples de botones de radio
- 11.2.10 Casillas de verificación
- 11.2.11 Deslizadores
- 11.2.12 Imágenes, formatos e hipervínculos
- 11.2.13 Cuadros de diálogo estándar
- 11.3 PyQt y SQLite
- 11.3.1 La interfaz de usuario de la aplicación
- 11.3.2 Widgets a la izquierda
- 11.3.3 Widgets en el medio
- 11.3.4 Widgets en la derecha
- 11.3.5 Widget de lista y lista de Python
- 11.3.6 Archivo de base de datos y ventana
- 11.3.7 Tres métodos auxiliares
- 11.3.8 Visualización en el widget de lista
- 11.3.9 Selección en un widget de lista
- 11.3.10 Insertar un nuevo registro de datos
- 11.3.11 Modificación de un registro de datos
- 11.3.12 Eliminación de un registro de datos
- 11.3.13 Búsqueda de un nombre
- 11.3.14 Programa principal
- 11.4 Ejercicio
- Anexos
- Temas varios
- A.1 Instalación de módulos adicionales
- A.2 Creación de archivos ejecutables
- A.3 Instalación de XAMPP
- A.4 Comandos UNIX
- A.5 Consejos para el desarrollo
- B El autor
- Índice
Getting Started with Python
If you want to program with Python, you’ve come to the right place! Take your first steps with this Python crash course that teaches you to use core language elements, from variables to branches to loops. Follow expert guidance to work with data types, functions, and modules—and learn how to manage errors and exceptions along the way. Apply Python programming to develop databases, graphical user interfaces, widgets, and more. Practice your skills with example exercises, and start developing your own applications with Python today!
- Develop your own Python programs, step by step
- Understand how to work with variables, operators, loops, data types, functions, and modules
- Follow detailed exercises to build Python applications, GUIs, and more
You'll learn about:
- Language Basics:
Learn the Python fundamentals, from initial installation to running your first program. Master core concepts including variables, branching, loops, functions, and modules; then work with data types such as integers, strings, and tuples.
- Python in Practice:
Apply Python programming in key development scenarios. Use Python for object-oriented programming, create and identify threads, manage files and directories, develop databases with SQLite and MySQL, and more.
- Example Exercises:
Get hands-on experience with practical programming exercises. Follow along with a game development example as you move from chapter to chapter. You’ll be ready to create your own applications with Python in no time!
Key Highlights:
- Installation
- Python language basics
- Object-oriented programming
- Error handling
- Data types
- Multithreading
- File processing
- Databases
- GUI programming
- PyQt
- Example exercises
View Full Table of Contents
- Materials for This Book
- 1 Introduction
- 1.1 Advantages of Python
- 1.2 Prevalence of Python
- 1.3 Structure of This Book
- 1.4 Exercises
- 1.5 Installation on Windows
- 1.6 Installation on Ubuntu Linux
- 1.7 Installation on macOS
- 2 Getting Started
- 2.1 Python as a Calculator
- 2.1.1 Entering Calculations
- 2.1.2 Addition, Subtraction, and Multiplication
- 2.1.3 Division, Integer Division, and Modulo
- 2.1.4 Ranking and Parentheses
- 2.1.5 Exercise
- 2.1.6 Variables and Assignment
- 2.1.7 Exercise
- 2.2 Our First Program
- 2.2.1 Hello World
- 2.2.2 Entering a Program
- 2.3 Saving and Running
- 2.3.1 Saving
- 2.3.2 Running on Windows
- 2.3.3 Running on Ubuntu Linux and on macOS
- 2.3.4 Comments
- 2.3.5 Concatenating Outputs
- 2.3.6 Long Outputs
- 3 Programming Course
- 3.1 Programming a Game
- 3.2 Variables and Operators
- 3.2.1 Assignment, Calculation, and Output
- 3.2.2 String Literals
- 3.2.3 Entering a String
- 3.2.4 Entering a Number
- 3.2.5 Our Game: Version with Input
- 3.2.6 Exercises
- 3.2.7 Random Numbers
- 3.2.8 Determining a Type
- 3.3 Branches
- 3.3.1 Comparison Operators
- 3.3.2 Branch Using if
- 3.3.3 Our Game: Version with Input Evaluation
- 3.3.4 Exercise
- 3.3.5 Multiple Branches
- 3.3.6 Exercise
- 3.3.7 Conditional Expression
- 3.3.8 Logical Operators
- 3.3.9 Exercises
- 3.3.10 Multiple Comparison Operators
- 3.3.11 Our Game: Version with Exact Evaluation of the Input
- 3.3.12 Branch with match
- 3.3.13 Order of Operations
- 3.4 Loops
- 3.4.1 Loops with for
- 3.4.2 Terminating a Loop Using break
- 3.4.3 Continuing a Loop Using continue
- 3.4.4 Nested Control Structures
- 3.4.5 Our Game: Version with for Loop and Abort
- 3.4.6 Loops with for and range()
- 3.4.7 Exercises
- 3.4.8 Our Game: Version with range()
- 3.4.9 Loop with while
- 3.4.10 Our Game: Version with while Loop and Counter
- 3.4.11 Exercise
- 3.4.12 Combined Assignment Expressions
- 3.5 Developing a Program
- 3.6 Errors and Exceptions
- 3.6.1 Base Program
- 3.6.2 Intercepting Errors
- 3.6.3 Outputting an Error Message
- 3.6.4 Repeating an Entry
- 3.6.5 Exercise
- 3.6.6 Our Game: Version with Exception Handling
- 3.7 Functions and Modules
- 3.7.1 Simple Functions
- 3.7.2 Functions with One Parameter
- 3.7.3 Exercise
- 3.7.4 Functions with Multiple Parameters
- 3.7.5 Functions with Return Value
- 3.7.6 Our Game: Version with Functions
- 3.7.7 Exercises
- 3.8 Type Hints
- 3.8.1 Variables and Type Checks
- 3.8.2 Functions and Type Checks
- 3.9 The Finished Game
- 4 Data Types
- 4.1 Numbers
- 4.1.1 Integers
- 4.1.2 Numbers with Decimal Places
- 4.1.3 Exponential Operator **
- 4.1.4 Rounding and Conversion
- 4.1.5 Trigonometric Functions
- 4.1.6 Other Mathematical Functions
- 4.1.7 More Precise Figures with Decimal Places
- 4.1.8 Complex Numbers
- 4.1.9 Bit Operators
- 4.1.10 Fractions
- 4.2 Character Strings
- 4.2.1 Properties
- 4.2.2 Operators
- 4.2.3 Slices
- 4.2.4 Mutability
- 4.2.5 Searching and Replacing
- 4.2.6 Removing Blank Spaces
- 4.2.7 Decomposing Texts
- 4.2.8 Constants
- 4.2.9 The bytes Data Type
- 4.3 Lists
- 4.3.1 Properties and Operators
- 4.3.2 Multidimensional Lists
- 4.3.3 Mutability
- 4.3.4 Methods
- 4.3.5 List Comprehension
- 4.4 Tuples
- 4.5 Dictionaries
- 4.5.1 Properties, Operators, and Methods
- 4.5.2 Dynamic Views
- 4.6 Sets
- 4.6.1 Properties, Operators, and Methods
- 4.6.2 Set Theory
- 4.7 Truth Values and Nothing
- 4.7.1 Truth Values “True” and “False”
- 4.7.2 Nothing and the None Keyword
- 4.8 Reference, Identity, and Copy
- 4.8.1 Reference and Identity
- 4.8.2 Saving Resources
- 4.8.3 Copying Objects
- 4.9 Type Hints
- 4.9.1 A Sequence as a Parameter
- 4.9.2 Restriction to a List
- 5 Advanced Programming
- 5.1 General Remarks
- 5.1.1 Combined Assignment Operators
- 5.1.2 Statement in Multiple Lines
- 5.1.3 Input with Assistance
- 5.1.4 The pass Statement
- 5.2 Output and Formatting
- 5.2.1 The print() Function
- 5.2.2 Formatting Numbers with Decimal Places
- 5.2.3 Formatting Integers
- 5.2.4 Formatting Strings
- 5.2.5 Exercise
- 5.3 Functions for Iterables
- 5.3.1 The zip() Function
- 5.3.2 The map() Function
- 5.3.3 The filter() Function
- 5.4 Encryption
- 5.5 Errors and Exceptions
- 5.5.1 General Remarks
- 5.5.2 Syntax Errors
- 5.5.3 Runtime Errors
- 5.5.4 Logical Errors and Debugging
- 5.5.5 Generating Errors
- 5.5.6 Distinguishing Exceptions
- 5.6 Functions
- 5.6.1 A Variable Number of Parameters
- 5.6.2 Named Parameters
- 5.6.3 Optional Parameters
- 5.6.4 Multiple Return Values
- 5.6.5 Transferring Copies and References
- 5.6.6 Namespaces
- 5.6.7 Recursive Functions
- 5.6.8 Lambda Functions
- 5.6.9 Functions as Parameters
- 5.7 Built-In Functions
- 5.7.1 The max(), min(), and sum() Functions
- 5.7.2 The chr() and ord() Functions
- 5.7.3 The reversed() and sorted() Functions
- 5.8 Other Mathematical Modules
- 5.8.1 Drawing Function Graphs
- 5.8.2 Multiple Partial Drawings
- 5.8.3 One-Dimensional Arrays and Vectors
- 5.8.4 Multidimensional Arrays and Matrices
- 5.8.5 Signal Processing
- 5.8.6 Statistics Functions
- 5.9 Custom Modules
- 5.9.1 Creating Custom Modules
- 5.9.2 Standard Import of a Module
- 5.9.3 Importing and Renaming a Module
- 5.9.4 Importing Functions
- 5.9.5 Exercise
- 5.10 Command Line Parameters
- 5.11 “Fractions Training” Program
- 5.11.1 The Program Flow
- 5.11.2 Main Program
- 5.11.3 An Easy Task
- 5.11.4 A Moderately Difficult Task
- 5.11.5 A Difficult Task
- 6 Object-Oriented Programming
- 6.1 Basic Principles
- 6.1.1 What Is Object-Oriented Programming?
- 6.1.2 Classes, Objects, and Custom Methods
- 6.1.3 Special Members
- 6.1.4 Exercise
- 6.1.5 Operator Methods
- 6.1.6 Reference, Identity, and Copy
- 6.1.7 Concatenation
- 6.1.8 Nesting
- 6.1.9 Exercises
- 6.2 Advanced Topics
- 6.2.1 Inheritance
- 6.2.2 Exercise
- 6.2.3 Multiple Inheritance
- 6.2.4 Data Classes
- 6.2.5 Enumerations
- 6.2.6 Our Game: Object-Oriented Version
- 7 Various Modules
- 7.1 Date and Time
- 7.1.1 The time Module
- 7.1.2 Stopping a Program
- 7.1.3 The timedelta Class
- 7.1.4 The datetime Class
- 7.1.5 The calendar Class
- 7.1.6 Our Game: Version with Time Measurement
- 7.1.7 Our Game: Object-Oriented Version with Time Measurement
- 7.2 Queues
- 7.2.1 The SimpleQueue Class
- 7.2.2 The LifoQueue Class
- 7.2.3 The PriorityQueue Class
- 7.2.4 The deque Class
- 7.3 Multithreading
- 7.3.1 What Is Multithreading Used For?
- 7.3.2 Generating a Thread
- 7.3.3 Identifying a Thread
- 7.3.4 Shared Data and Objects
- 7.3.5 Threads and Exceptions
- 7.4 Regular Expressions
- 7.4.1 Finding Text Parts
- 7.4.2 Replacing Text Parts
- 7.5 Audio Output
- 8 Files
- 8.1 Opening and Closing a File
- 8.2 Text Files
- 8.2.1 Writing a Text File
- 8.2.2 Reading a Text File
- 8.2.3 Writing a CSV File
- 8.2.4 Reading a CSV File
- 8.3 Files with a Defined Structure
- 8.3.1 Formatted Writing
- 8.3.2 Reading in Any Position
- 8.3.3 Writing in Any Position
- 8.4 Serialization Using pickle
- 8.4.1 Writing Objects to Files
- 8.4.2 Reading Objects from Files
- 8.5 Data Exchange Using JSON
- 8.5.1 Writing Objects to Files
- 8.5.2 Reading Objects from Files
- 8.6 Editing Multiple Files
- 8.6.1 The glob.glob() Function
- 8.6.2 The os.scandir() Function
- 8.7 Information about Files
- 8.8 Managing Files and Directories
- 8.9 The Morse Code Sample Project
- 8.9.1 Reading Morse Code from a File
- 8.9.2 Output on the Screen
- 8.9.3 Output with Sound Signals
- 8.10 Our Game: Version with Highscore File
- 8.10.1 Sample Entries
- 8.10.2 Structure of the Program
- 8.10.3 The Code of the Program
- 8.11 Our Game: Object-Oriented Version with Highscore File
- 9 Databases
- 9.1 Structure of Databases
- 9.2 SQLite
- 9.2.1 Database, Table, and Data Records
- 9.2.2 Displaying Data
- 9.2.3 Selecting Data
- 9.2.4 The LIKE Operator
- 9.2.5 Sorting the Output
- 9.2.6 Selection after Entry
- 9.2.7 Changing Data Records
- 9.2.8 Deleting Data Records
- 9.2.9 Exercise
- 9.3 MySQL
- 9.3.1 XAMPP and Connector/Python
- 9.3.2 Database, Table, and Data Records
- 9.3.3 Displaying Data
- 9.4 Our Game: Version with Highscore Database
- 9.5 Our Game: Object-Oriented Version with Highscore Database
- 10 User Interfaces
- 10.1 Introduction
- 10.1.1 Our First GUI Program
- 10.1.2 Setup and Arrangement
- 10.1.3 Event Methods for Multiple Widgets
- 10.2 Widget Types
- 10.2.1 Single-Line Input Field
- 10.2.2 Hidden Input and Deactivating a Widget
- 10.2.3 Multiline Input Field
- 10.2.4 List Box with Simple Selection
- 10.2.5 List Box with Multiple Selection Option
- 10.2.6 Spin Boxes
- 10.2.7 Radio Buttons and the Widget Variable
- 10.2.8 Check Buttons
- 10.2.9 Sliders and Scales
- 10.3 Images and Mouse Events
- 10.3.1 Embedding and Changing an Image
- 10.3.2 Mouse Events
- 10.4 The place Geometry Manager
- 10.4.1 Window Size and Absolute Position
- 10.4.2 Relative Position
- 10.4.3 Changing the Position
- 10.5 Menus and Dialog Boxes
- 10.5.1 Menu Bars
- 10.5.2 Context Menus
- 10.5.3 Standard Dialog Boxes
- 10.5.4 Custom Dialog Boxes
- 10.6 Drawings and Animations
- 10.6.1 Various Drawing Objects
- 10.6.2 Controlling Drawing Objects
- 10.6.3 Animating Drawing Objects
- 10.6.4 Collision of Drawing Objects
- 10.7 Our Game: GUI Version
- 10.8 Exercise
- 11 User Interfaces with PyQt
- 11.1 Introduction
- 11.1.1 Our First GUI Program
- 11.1.2 Setup and Arrangement
- 11.1.3 Size of the Application Window
- 11.1.4 Event Methods for Multiple Widgets
- 11.2 Widget Types
- 11.2.1 Single-Line Input Field
- 11.2.2 Hidden Inputs and Disabling Widgets
- 11.2.3 Multiline Input Field
- 11.2.4 List with a Single Selection Option
- 11.2.5 List with Multiple Selection Options
- 11.2.6 Combo Boxes
- 11.2.7 Spin Boxes
- 11.2.8 Radio Buttons
- 11.2.9 Multiple Groups of Radio Buttons
- 11.2.10 Checkboxes
- 11.2.11 Sliders
- 11.2.12 Images, Formats, and Hyperlinks
- 11.2.13 Standard Dialog Boxes
- 11.3 PyQt and SQLite
- 11.3.1 The User Interface of the Application
- 11.3.2 Widgets on the Left
- 11.3.3 Widgets in the Middle
- 11.3.4 Widgets in the Right
- 11.3.5 List Widget and Python List
- 11.3.6 Database File and Window
- 11.3.7 Three Auxiliary Methods
- 11.3.8 Display in the List Widget
- 11.3.9 Selection in a List Widget
- 11.3.10 Inserting a New Data Record
- 11.3.11 Changing a Data Record
- 11.3.12 Deleting a Data Record
- 11.3.13 Searching for a Name
- 11.3.14 Main Program
- 11.4 Exercise
- Appendices
- A Miscellaneous Topics
- A.1 Installing Additional Modules
- A.2 Creating Executable Files
- A.3 Installing XAMPP
- A.4 UNIX Commands
- A.5 Tips for Development
- B The Author
- Index