El gran libro de Python

El gran libro de Python
Автор книги: id книги: 2200814     Оценка: 0.0     Голосов: 0     Отзывы, комментарии: 0 1411,06 руб.     (13,76$) Читать книгу Купить и скачать книгу Электронная книга Жанр: Математика Правообладатель и/или издательство: Bookwire Дата добавления в каталог КнигаЛит: ISBN: 9788426729057 Скачать фрагмент в формате   fb2   fb2.zip Возрастное ограничение: 0+ Оглавление Отрывок из книги

Реклама. ООО «ЛитРес», ИНН: 7719571260.

Описание книги

Python es un lenguaje de programacion multiplataforma, consistente y maduro, en el cual confian con exito las Empresas y organizaciones mundiales mas prestigiosas: Google, la NASA, YouTube, Intel y Yahoo! Su exito esta vinculado tanto al hecho de que favorece la productividad, haciendo mas sencillo el desarrollo de sistemas de software sin tener en cuenta su complejidad, como al hecho de que tiene multiples entornos de uso: aplicaciones web, juegos y multimedia, interficies graficas, networking, aplicaciones cientificas, inteligencia artificial y programacion de sistemas, entre muchos otros. El gran libro de Python es el mas completo, moderno y detallado de entre los volumenes dedicados a Python que pueden encontrarse actualmente en el mercado. Actualizado a la version 3.4 del lenguaje, lanzada en enero de 2014. Su composicion es muy detallada y sigue un curso gradual elaborado en torno a una amplia serie de ejemplos y ejercicios: parte de las bases del lenguaje, sin dar nada por sabido, hasta llegar a los argumentos considerados mas dificiles, incluso por los programadores mas experimentados.
Soporte al libro disponible online: code.google.com/p/the]phytonic]way/ Aspectos destacados: – Introduccion al lenguaje Python, a su sintaxis, a sus construcciones fundamentales y a la libreria estandar. – Funciones y modos de emparejamiento de argumentos, generadores, corrutinas, archivos, comodines y expresiones regulares. – Modulos y paquetes, entornos y espacios de nombres, ambientes virtuales, instalacion y distribucion de aplicaciones. – Prueba de validacion de cadenas de documentacion y desarrollo guiado por pruebas. – Programacion orientada a objetos en Python: clases, herencia, gestion de las excepciones, patron y antipatron, propiedades y decoradores. – Modelo a objetos de Python, atributos magicos, descriptores y metaclases.
Marco Buttu: ingeniero electronico. Tras haber trabajado en el campo del Network on Chip y de las nuevas arquitecturas para la elaboracion paralela, aterrizo en el Istituto Nazionale di Astrofisica, en el cual se ocupa del desarrollo del software de control del Sardinia Radio Telescope, el radiotelescopio europeo mas moderno y uno de los mas grandes del mundo. En 2004 tuvo su primer encuentro con Python y desde entonces no ha podido separarse de el.

Оглавление

Marco Buttu. El gran libro de Python

El Gran libro de Python

Sumario

Introducción

A quién va dirigido

Contenido del libro

Material y contactos

Agradecimientos

Los fundamentos del lenguaje

Introducción a Python

Desarrollo de Python

El estado del arte

La comunidad italiana de Python

Implementaciones de Python

Modos de ejecución del código Python

Modo interactivo

Ejecución de cadenas pasadas desde la línea de comandos

Introducción al lenguaje

Indentación del código

Los objetos integrados

Tipos de datos básicos

Las cadenas de texto

Las listas

Las tuplas

Los diccionarios

Los conjuntos

Funciones y clases integradas

Un primer vistazo a la librería estándar y al concepto de módulo

Definir las funciones

Definir las clases

Un primer vistazo a los archivos

La función integrada print()

Obtener información sobre los objetos

La función integrada dir()

La función integrada help() y las cadenas de documentación

El Zen de Python

Los elementos del código Python

Los comentarios

Literales

Operadores

Palabras clave

Delimitadores

Las etiquetas

Arquitectura de un programa Python

Las expresiones

Las instrucciones

Instrucciones simples

La asignación

La instrucción pass

La instrucción del

La instrucción return

La instrucción import

La instrucción from

La instrucción assert

Instrucciones compuestas

La instrucción if

La instrucción for

La instrucción while

Los módulos como contenedores de instrucciones

La Python Virtual Machine

Etiquetas y objetos

Definición de objeto

El vínculo entre las etiquetas y los objetos

Objetos mutables e inmutables

Modificación de objetos mutables

Inmutabilidad

Objetos inmutables que contienen objetos mutables

Los atributos son etiquetas

Etiquetas y nombres

Tipos de errores

Errores de sintaxis

Las excepciones

La gestión de las excepciones

Objetos iterables, iteradores y contexto de iteración

El protocolo de iteración

Las clases integradas range y enumerate

El contexto de iteración

Ejercicio final

Ejecución del script

Paso de los argumentos desde la línea de comandos

La interacción con el sistema operativo

Listas por comprensión

Expresiones de formato de las cadenas de texto

El corazón del lenguaje

Números

Números enteros

Operadores que permiten procesar los números enteros

Elevación a la potencia

División natural y floor

Operadores de comparación

Operadores de desplazamiento

Las enumeraciones de enteros

Aritmética de los números enteros

Números de punto flotante

Conversiones

Conversiones explícitas

Conversiones implícitas

Aritmética de los números de punto flotante

La notación de punto flotante

IEEE Standard for Binary Floating-Point Arithmetic

Valores máximo y mínimo representables

Underflow y overflow

Máquina de precisión

Métodos de los números de punto flotante

Números complejos

Booleanos

Introducción al concepto de herencia entre tipos

El vínculo entre los tipos bool e int

Expresiones lógicas

Librerías externas

Operaciones y funciones integradas utilizables con objetos iterables

Operaciones comunes para los objetos iterables

Desempaquetado

Prueba de pertenencia

Iteración

Funciones integradas que implican o devuelven objetos iterables

El módulo itertools de la librería estándar

Los conjuntos matemáticos

Set

Operaciones entre conjuntos

Los métodos de los conjuntos

Conjuntos por comprensión

Los conjuntos inmutables

Diccionarios

Métodos de los diccionarios

Diccionarios e iteraciones

Diccionarios ordenados

Persistencia y serialización de los objetos

Las secuencias

Operaciones comunes a las secuencias

Indexación y fragmentación

Concatenación y repetición

La prueba de la verdad

Cadenas

Los sistemas de codificación de caracteres

La representación de caracteres en formato digital

American Standard Code for Information Interchange

Cadenas de bytes

El estándar Unicode

Sistemas de codificación basados en el estándar Unicode

Conversiones entre cadenas de texto y cadenas de bytes

Secuencias de escape

Secuencias de escape representativas de algunos caracteres ASCII de control

Secuencias de escape representativas de algunos caracteres ASCII imprimibles

Secuencias de escape que permiten representar una parte de los caracteres Unicode

Secuencias de escape que permiten representar cualquier carácter Unicode

Métodos de las cadenas

Métodos comunes a las cadenas de texto y a las de bytes

Métodos específicos de las cadenas de texto

Métodos específicos de las cadenas de bytes

Formato de las cadenas de texto

Expresiones de formato de las cadenas de texto

Formato de cadenas de texto utilizando métodos y funciones integradas

Cadenas de bytes mutables

Listas

Métodos de las listas

Tuplas

Las tuplas con nombre

Ejercicio final

Ejecución del script

Análisis de los argumentos pasados desde la línea de comandos

El analizador

El espacio de nombres de los argumentos

El tipo de los argumentos

Argumentos opcionales y valores predeterminados

Valores dentro de un cierto rango

El análisis de los argumentos de webstats.py

Trabajar con fechas

El módulo collections de la librería standard

Funciones, generadores y archivos

Definición y llamada de una función

Parámetros, argumentos y valores de retorno

Modos de emparejamiento de argumentos con parámetros

Emparejamiento por nombre

Emparejamiento con valores por defecto

Emparejamiento con varargs

Emparejamiento solo por palabra clave

Emparejamiento con desempaquetado de objetos iterables

Emparejamiento con kwargs

Emparejamiento con desempaquetado de objetos diccionario

Funciones anónimas

Introspección de funciones

Introspección mediante atributos

Introspección estática mediante el módulo dis

Introspección con anotaciones

Introspección mediante el módulo inspect

Introspección con las funciones integradas

Generadores

Funciones generadoras

Corrutinas

Expresiones generadoras

Subgeneradores

Archivos

Lectura y escritura

Iterar sobre las líneas de un archivo

Los parámetros de la función open()

El parámetro file

Mode

Buffering

Encoding y errors

Newline

Closefd

Opener

Ejercicio final

Ejecución del script

Búsqueda de los archivos

Recorrer los directorios

El soporte para los comodines

La función generadora file_finder()

La función generadora file_inspector()

Expresiones regulares

Practicar con las expresiones regulares

El módulo re de la librería estándar

El parámetro action de add_argument()

Módulos, paquetes, entornos virtuales y aplicaciones

Módulos

Tipos de módulos

Módulos Python

Módulos compilados

Módulos integrados

Las extensiones

Tipologías de módulos Python

Contenedor puro de atributos

Script

Los módulos híbridos y la etiqueta global __name__

Rutas de búsqueda de los módulos

Variantes de la instrucción import

Importación de módulos ya importados y función imp.reload()

Importaciones circulares

Paquetes

Uso de paquetes

Paquetes regulares

Paquetes de espacio de nombres

Espacio de nombres, ámbito y resolución de nombres

El espacio de nombres integrado

Espacio de nombres global

Espacio de nombres local

Ámbito y resolución de nombres

Resolución de los nombres en el ámbito local

Etiquetas locales libres asignadas estáticamente al ámbito envolvente

Etiquetas libres asignadas estáticamente al ámbito global

Resolución de las etiquetas en el ámbito integrado

Instalación de paquetes

Python distribution utilities: distutils

Pip installs Python

Entornos virtuales

El módulo venv de la librería estándar

Duplicados de entornos

Ejercicio final

La prueba de validación de cadenas de documentación

Introducción al módulo doctest de la librería estándar

Uso del módulo doctest

El archivo pyfinder.py

Ejemplos con resultados independientes del sistema operativo y de la instalación de Python

Indicadores de opción y directivas

Instalación de la aplicación

Distribuir las aplicaciones

Crear una distribución de la aplicación

Source distribution

Built distribution

Publicar la distribución en PyPI

Registrar la aplicación en PyPI

Cargar la aplicación en PyPI

Clases y programación orientada a objetos

Clases e instancias

El parámetro self

Atributos de clase y de instancia

Ámbito y espacio de nombres

Diferencias de implementación entre el espacio de nombres de clase y de instancia

Atributos ocultos

El inicializador

Un primer vistazo a la sobrecarga

La composición

La herencia

La clase integrada super

Herencia múltiple y orden de resolución de métodos

Utilizamos super, porque es súper

Anular o sobrescribir métodos de las clases base

Introducción a las clases base abstractas y al módulo abc

Comportamiento de isinstance() e issubclass() con la herencia

Los decoradores

La función functools.wraps()

Decoradores que aceptan argumentos

Los métodos y las propiedades

Métodos de clase

Métodos estáticos

Método de instancia

Diferencias entre los tres tipos de métodos

Casos de uso

Métodos de clase para inicializar las instancias de diferentes maneras

Ejemplo de uso de un método estático

Las propiedades

Introducción a los patrones de diseño

El movimiento patrón

La clasificación de los patrones de diseño

Monostate

Solución

Los antipatrones

Programación copiar y pegar

Forma

Síntomas

Causas

Solución

Las excepciones

El mensaje de error

El rastreo

El tipo de excepción

La causa del error

La gestión de las excepciones

La cláusula except

Gestionar distintos tipos de excepciones en la misma cláusula except

Gestionar las excepciones en más cláusulas except

La forma except as permite obtener información acerca de las excepciones

Capturar todos los tipos de excepción con una única cláusula except genérica

Obtener información de la excepción capturada con una except genérica

El problema de las etiquetas que no consiguen asignarse en la cláusula try

La cláusula finally

La cláusula opcional else

Generar excepciones manualmente

La instrucción raise

La instrucción assert

Excepciones y herencia

La jerarquía de los tipos de excepciones integradas

Excepciones que representan errores

Excepciones utilizadas para notificar advertencias

Las excepciones de tipo StopIteration

Los tipos de excepción que no heredan de Exception

Cómo capturar todas las excepciones de manera genérica

Utilizar el tipo más especializado

Todas las excepciones tienen el atributo args

Ejemplo práctico sobre la gestión de las excepciones

La instrucción with y los gestores de contexto

La instrucción with

La cláusula as

Ejemplos de uso de la instrucción with

Los gestores de contexto

Definir clases que instancian gestores de contexto

Funciones gestoras de contexto

Ejercicio final

Ejecución del programa

El módulo cmd de la librería estándar

La clase cmd.Cmd

Atributos mágicos, metaclases y desarrollo guiado por pruebas

El modelo a objetos de Python

La clase type

La clase object

Tipos y no-tipos

Duck typing

Sobrecarga dinámica

Los atributos mágicos

La creación de instancias

El método especial __call__()

El método especial __new__()

Implementación del patrón de instancia única con anulación del constructor

Heredar de los tipos inmutables

El método especial _ _init_ _()

La finalización de instancias

Sobrecarga de operadores

Sobrecarga de los operadores aritméticos y herencia

Operaciones conmutativas

Los operadores de asignación aumentada

Sustracción, multiplicación y valor absoluto

Indexación y fragmentación

Iteración

Acceso a los atributos

Los métodos __getattr__(), __setattr__() y __delattr__()

El atributo mágico __getattribute__()

Descriptores

Búsqueda de atributos

Metaclases

El mito de la magia más profunda

La metaclase type

Personalizar el proceso de creación de clases

Crear nuevas metaclases

Elegir la metaclase de nuestras clases

La creación de clases

La preparación del diccionario de atributos

La llamada al método __prepare__()

Creación del atributo __dict__ de la clase

Algunos ejemplos de uso de metaclases

Modificar el prefijo de los atributos ocultos

Implementación del patrón de instancia única con las metaclases

Impedir la instanciación de clases homónimas

Orden de definición de los atributos en la sentencia class

Metaclases que aceptan argumentos opcionales

Desarrollo guiado por pruebas

El flujo de trabajo del desarrollo guiado por pruebas

Escribir la prueba y asegurarse de que falle

Implementar una versión mínima del código que permita superar la prueba

Realizar la refactorización del código

Las pruebas automáticas

La importancia de las pruebas automáticas

Los tipos de prueba

Las pruebas unitarias automáticas

El módulo unittest de la librería estándar

Los casos de prueba

El ejecutor de pruebas y las afirmaciones

Los ensayos de pruebas

Descubrimiento de pruebas

Comparación entre pruebas unitarias y pruebas de validación de cadenas de documentación

Ejemplo práctico de uso del desarrollo guiado por pruebas

Implementación y validación del descriptor

Escribir una prueba unitaria y comprobar que falle

Implementar las funcionalidades solicitadas

Refactorización

Implementación y validación de la metaclase

Escribir una prueba unitaria y comprobar que falle

Implementar las funcionalidades solicitadas

Refactorización

Las enumeraciones

Los miembros de una enumeración

Ejercicio final

Miembros ordenados, miembros instancias de la enumeración y miembros con atributos nombre y valor

Escribir una prueba unitaria y comprobar que falle

Implementar las funcionalidades solicitadas

No puede haber dos miembros con el mismo nombre

Escribir una prueba unitaria y comprobar que falle

Implementar la funcionalidad solicitada

Los miembros no pueden ser ni reasignados ni cancelados

Escribir una prueba unitaria y comprobar que falle

Implementar la funcionalidad solicitada

Un miembro con el mismo valor que otro es un alias

Escribir una prueba unitaria y comprobar que falle

Implementar la funcionalidad solicitada

Las enumeraciones son objetos iterables

Escribir las pruebas unitarias y comprobar que fallen

Implementar las funcionalidades solicitadas

Pasta[‘nombre_miembro’] debe devolver el miembro

Escribir una prueba unitaria y comprobar que falle

Implementar la funcionalidad solicitada

Pasta(value) debe devolver el miembro que tiene value como valor

Escribir una prueba unitaria y comprobar que falle

Implementar la funcionalidad solicitada

Refactorización

Apéndice A. Descripción de los comandos Unix-like utilizados en el libro

cat

chmod

cut

diff

echo

find

grep

head

ln

Is

mkdir

more

mv

pwd

rm

sed

source

tail

tar

time

touch

tree

wc

wget

which

zip

Los metacaracteres

Los comodines

Redirección

La barra vertical

Variables de entorno

PWD

HOME

Apéndice B. Principales puntos de rotura entre Python 2 y Python 3

Incompatibilidades entre las dos versiones

Print es una función integrada en Python 3 y una sentencia en Python 2

División natural y división en floor

Las funciones integradas input() y raw_input()

La función integrada file() ya no existe en Python 3

Las funciones integradas range(), filter(), map() y zip()

Los métodos keys(), values() e items() de los diccionarios

Listas por comprensión

Cadenas de texto y bytes

Unificación entre enteros y long

En Python 3 ya no existe la función integrada apply()

En Python 2 exec es una palabra clave y en Python 3, una función integrada

Uso inconsistente de espacios y tabulaciones

Migración automática de Python 2 a Python 3

Apéndice C. El buffering de los archivos

Отрывок из книги

Marco Buttu

1. LOS FUNDAMENTOS DEL LENGUAJE

.....

no pueden empezar con números:

y son evaluadas por Python en modo case-sensitive:

.....

Добавление нового отзыва

Комментарий Поле, отмеченное звёздочкой  — обязательно к заполнению

Отзывы и комментарии читателей

Нет рецензий. Будьте первым, кто напишет рецензию на книгу El gran libro de Python
Подняться наверх