domingo, 19 de octubre de 2025

Python For Everybody (Py4E) Seccion 16. Visualizacion de datos.

 Aquí tienes un resumen del documento "Pythonlearn-16-Data-Viz.pptx":

Resumen elaborado con Gemini.
 
El documento "Pythonlearn-16-Data-Viz.pptx" se centra en la recuperación y visualización de datos, haciendo hincapié en el "Personal Data Mining" para mejorar las habilidades de programación en Python, más que en convertir a los usuarios en expertos en minería de datos.

Análisis de Datos Multi-Paso:

El proceso de análisis de datos se describe en varias etapas:
  • Recopilar (Gather): Obtener los datos de una fuente.
  • Limpiar/Procesar (Clean/Process): Preparar los datos para el análisis.
  • Analizar (Analyze): Realizar el análisis de los datos.
  • Visualizar (Visualize): Presentar los datos de forma gráfica.
Tecnologías de Minería de Datos:

Se mencionan diversas tecnologías de minería de datos como Hadoop, Spark, AWS Redshift y Pentaho, pero el enfoque del curso es el "Personal Data Mining" para el desarrollo de programadores Python.

Proyectos de Visualización de Datos:
  1. OpenGeo:
    • Crea un mapa anotado de Open Street Map a partir de datos introducidos por el usuario.
    • Utiliza la API GeoAPI con un proxy.
    • Almacena los datos en una base de datos para evitar límites de tasa y permitir reinicios.
    • Se visualiza en un navegador usando Open Street Map.
    • Los archivos asociados incluyen geodata.sqlite, geoload.py, geodump.py, where.data, where.js, where.html.
  2. Page Rank:
    • Implica escribir un rastreador de páginas web simple.
    • Calcula una versión simplificada del algoritmo Page Rank de Google.
    • Visualiza la red resultante.
    • Los archivos asociados incluyen spider.sqlite, spider.py, spdump.py, force.js, force.html, d3.js, spreset.py, sprank.py, spjson.py.
  3. Listas de Correo - Gmane:
    • Rastrea el archivo de una lista de correo.
    • Realiza análisis y limpieza de datos.
    • Visualiza los datos como una nube de palabras y gráficos de líneas.
    • Se advierte que el conjunto de datos es grande (> 1GB) y que la fuente original (gmane.org) ha sido cerrada. Se proporciona una copia de un subconjunto de datos para pruebas.
    • Los archivos asociados incluyen content.sqlite, gmane.py, mbox.dr-chuck.net, gword.js, gword.htm, d3.js, gword.py, gmodel.py, gbasic.py, gline.js, gline.htm, d3.js, gline.py, content.sqlite, mapping.sqlite.
Arquitectura de Motores de Búsqueda:

Se describe la arquitectura de los motores de búsqueda, que incluye:
  • Rastreo Web (Web Crawling): Un programa de computadora que navega por la World Wide Web de manera metódica y automatizada para crear una copia de las páginas visitadas para su posterior procesamiento.
    • Política de Rastreo Web: Incluye políticas de selección, revisión, cortesía y paralelización.
    • robots.txt: Un estándar informal y voluntario para que un sitio web se comunique con los rastreadores web, indicando qué partes del sitio no deben ser rastreadas.
  • Construcción de Índices (Index Building): Recopila, analiza y almacena datos para facilitar la recuperación rápida y precisa de información.
  • Búsqueda (Searching): La etapa final donde se utilizan los índices para encontrar documentos relevantes para una consulta de búsqueda.
Agradecimientos:

Las diapositivas son Copyright 2010- Charles R. Severance de la Universidad de Michigan y están disponibles bajo una licencia Creative Commons Attribution 4.0.

Python For Everybody (Py4E) Seccion 15. bases de datos

Resumen redactado por Gemini.

  

Aquí tienes un resumen del documento "Pythonlearn-15-Databases.pptx":


El documento "Pythonlearn-15-Databases.pptx" introduce el concepto de bases de datos relacionales y cómo interactuar con ellas usando Python, centrándose en SQLite.

Conceptos Clave:
  • Bases de Datos Relacionales: Modelan los datos almacenando filas y columnas en tablas. Su poder reside en la capacidad de recuperar datos eficientemente de múltiples tablas y las relaciones entre ellas.
  • Terminología:
    • Base de Datos: Contiene muchas tablas.
    • Relación (o Tabla): Contiene tuplas y atributos.
    • Tupla (o Fila): Un conjunto de campos que representa un "objeto" (por ejemplo, una persona o una canción).
    • Atributo (o Columna/Campo): Uno de los muchos elementos de datos que corresponden al objeto representado por la fila.
  • SQL (Structured Query Language): Es el lenguaje utilizado para emitir comandos a la base de datos, incluyendo:
    • Crear datos (Insertar).
    • Recuperar datos (Seleccionar).
    • Actualizar datos.
    • Eliminar datos.
  • Sistemas de Bases de Datos Comunes: Se mencionan Oracle, MySQL y SQL Server como los principales sistemas de gestión de bases de datos en uso, junto con proyectos más pequeños como HSQL, SQLite y Postgres.
  • SQLite: Es una base de datos muy popular, gratuita, rápida y pequeña, incrustada en Python y otros lenguajes. El documento recomienda el uso de SQLite Browser para manipular archivos SQLite directamente.
  • Modelo de Base de Datos (Esquema): Es la estructura o formato de una base de datos, descrito en un lenguaje formal compatible con el sistema de gestión de bases de datos.
  • Diseño de Bases de Datos: Implica dibujar una imagen de los objetos de datos para una aplicación y luego representar esos objetos y sus relaciones. Una regla básica es no duplicar datos, sino usar relaciones.
  • Normalización de Bases de Datos (3NF): Se refiere a la teoría de bases de datos que busca evitar la replicación de datos, utilizando referencias (punteros) en su lugar. Se recomienda usar números enteros para las claves primarias y foráneas.
  • Tipos de Claves:
    • Clave Primaria: Generalmente un campo entero de auto-incremento.
    • Clave Lógica: Lo que el mundo exterior usa para la búsqueda.
    • Clave Foránea: Generalmente una clave entera que apunta a una fila en otra tabla.
  • Relaciones Uno a Muchos y Muchos a Muchos:
    • Uno a Muchos: Una fila en una tabla se relaciona con múltiples filas en otra tabla.
    • Muchos a Muchos: Se modela añadiendo una tabla de "conexión" con dos claves foráneas.
  • Operación JOIN: Permite vincular varias tablas como parte de una operación SELECT, especificando cómo se conectan las tablas mediante una cláusula ON.
El documento también incluye ejemplos de código SQL para crear tablas, insertar, actualizar, eliminar y seleccionar datos, así como para realizar uniones entre tablas. Destaca que la complejidad del diseño de la base de datos permite la velocidad y la escalabilidad, al normalizar los datos y vincularlos con claves enteras.

Python For Every body (Py4E) Seccion 14. POO

 Aquí tienes un resumen del documento "Pythonlearn-14-Objects.pptx":


El documento "Pythonlearn-14-Objects.pptx" se enfoca en los objetos en Python y la programación orientada a objetos (POO).

Conceptos Clave:
  • Programación Orientada a Objetos (POO): Un programa se compone de muchos objetos que cooperan entre sí. Cada objeto es como una "isla" dentro del programa que trabaja en conjunto con otros objetos. Los programas se construyen con uno o más objetos que utilizan las capacidades de los demás.
  • Objeto: Es una porción de código y datos autocontenida. Un aspecto clave del enfoque de objetos es dividir el problema en partes más pequeñas y comprensibles. Los objetos tienen límites que permiten ignorar detalles innecesarios. Hemos estado utilizando objetos todo el tiempo: objetos de cadena (String), objetos de enteros (Integer), objetos de diccionario (Dictionary), objetos de lista (List), etc.
  • Clase: Una plantilla que define las características abstractas de una cosa (objeto), incluyendo sus atributos (campos o propiedades) y sus comportamientos (métodos, operaciones o características). Una clase es como un "plano" o "fábrica" que describe la naturaleza de algo.
  • Instancia: Un objeto particular de una clase, creado en tiempo de ejecución. El conjunto de valores de los atributos de un objeto particular se llama su "estado". El objeto consiste en el estado y el comportamiento definido en la clase del objeto. "Objeto" e "Instancia" a menudo se usan indistintamente.
  • Método: Las habilidades de un objeto. En el lenguaje de programación, los métodos son verbos. Usar un método generalmente afecta solo a un objeto particular; todos los perros pueden ladrar, pero solo necesitas un perro en particular para que ladre. "Método" y "Mensaje" a menudo se usan indistintamente.
  • Atributo (Field): Un dato dentro de una clase.
  • dir() y type():
    • El comando dir() lista las capacidades de un objeto. Ignora los que tienen guiones bajos, ya que son utilizados por Python internamente. El resto son operaciones reales que el objeto puede realizar.
    • type() nos dice el tipo de una variable.
  • Ciclo de Vida de un Objeto: Los objetos se crean, se usan y se descartan. Hay bloques de código especiales (métodos) que se llaman en el momento de la creación (constructor) y en el momento de la destrucción (destructor).
  • Constructor (__init__): El propósito principal del constructor es establecer algunas variables de instancia con los valores iniciales adecuados cuando se crea el objeto. Los constructores son muy utilizados, mientras que los destructores son poco comunes. Los constructores pueden tener parámetros adicionales para configurar variables de instancia para una instancia particular de la clase.
  • Múltiples Instancias: Podemos crear muchos objetos, ya que la clase es la plantilla para el objeto. Cada objeto distinto se puede almacenar en su propia variable. Cada instancia tiene su propia copia de las variables de instancia.
  • Herencia: Permite reutilizar una clase existente y heredar todas sus capacidades, para luego añadir nuestras propias características a la nueva clase. La nueva clase (hija) tiene todas las capacidades de la clase antigua (padre) y algunas más.
El documento incluye ejemplos de código para ilustrar la creación de clases, objetos, el uso de constructores y destructores, y el concepto de herencia.

Python for Everybody (Py4E) Seccion 13 Servicios Web.

Resumen realizado por Gemini. 

Aquí tienes un resumen del documento "Pythonlearn-13-WebServices.pptx":


El documento "Pythonlearn-13-WebServices.pptx" se centra en el uso de servicios web y el intercambio de datos entre programas a través de la red, destacando dos formatos comunes: XML y JSON.

Conceptos Clave:
  • Datos en la Web: Con la comprensión de las solicitudes y respuestas HTTP, surgió la necesidad de intercambiar datos entre programas utilizando estos protocolos. Se acordaron formatos para representar los datos que se envían entre aplicaciones y a través de redes.
  • Protocolo "Wire": Se refiere al formato en que se envían los datos a través de la red. Diferentes lenguajes de programación (PHP, JavaScript, Java, Python) tienen sus propias estructuras de datos (Array, Object, HashMap, Dictionary) que necesitan ser serializadas y deserializadas para el intercambio.
  • XML (eXtensible Markup Language):
    • Es un lenguaje de marcado para enviar datos a través de la red.
    • Su propósito principal es ayudar a los sistemas de información a compartir datos estructurados.
    • Comenzó como un subconjunto simplificado del Standard Generalized Markup Language (SGML) y está diseñado para ser relativamente legible por humanos.
    • Elementos XML: Pueden ser simples o complejos, y se organizan en una estructura de árbol.
    • Conceptos básicos de XML: Incluyen etiquetas de inicio y fin, contenido de texto, atributos y etiquetas de cierre automático.
    • Espacios en blanco: Generalmente se descartan en los elementos de texto; la indentación se usa solo para mejorar la legibilidad.
    • Terminología XML:
      • Etiquetas: Indican el principio y el final de los elementos.
      • Atributos: Pares clave/valor en la etiqueta de apertura de XML.
      • Serializar / Deserializar: Convertir datos de un programa a un formato común que pueda ser almacenado y/o transmitido entre sistemas de manera independiente del lenguaje de programación.
  • Esquema XML (XML Schema):
    • Describe un "contrato" sobre qué XML es aceptable.
    • Define el formato legal de un documento XML en términos de restricciones sobre la estructura y el contenido.
    • Se utiliza para especificar un "contrato" entre sistemas, donde un sistema solo aceptará XML que cumpla con un esquema particular.
    • Si un XML cumple con la especificación del esquema, se dice que "valida".
    • Existen varios lenguajes de esquema XML, como Document Type Definition (DTD), Standard Generalized Markup Language (SGML) y XML Schema de W3C (XSD).
    • XSD (XML Schema Definition): Es la versión del World Wide Web Consortium (W3C), comúnmente llamada XSD porque los nombres de archivo terminan en .xsd.
    • Estructura XSD: Incluye elementos
      xs:element
      ,
      xs:sequence
      y
      xs:complexType
    .
    • Restricciones XSD: Permiten definir la ocurrencia mínima y máxima de elementos.
    • Tipos de datos XSD: Incluyen
      xs:string
      ,
      xs:date
      ,
      xs:dateTime
      ,
      xs:decimal
      y
      xs:integer
      . Es común representar la hora en UTC/GMT.
    • Formato de Fecha/Hora ISO 8601: Un formato estándar para representar fecha y hora, incluyendo año-mes-día, hora del día y zona horaria (típicamente UTC/GMT).
  • JSON (JavaScript Object Notation):
    • Representa datos como "listas" y "diccionarios" anidados.
    • Es un formato ligero para el intercambio de datos.
  • Enfoque Orientado a Servicios (Service Oriented Approach):
    • Permite que una aplicación se divida en partes y se distribuya a través de una red.
    • Las aplicaciones web no triviales utilizan servicios de otras aplicaciones (por ejemplo, cargos de tarjetas de crédito, sistemas de reserva de hoteles).
    • Los servicios publican las "reglas" que las aplicaciones deben seguir para utilizar el servicio (API).
  • APIs (Application Program Interfaces):
    • Son contratos para la interacción entre aplicaciones.
    • Existen muchas APIs públicas, algunas gratuitas hasta cierto límite de uso y otras de pago.
    • El documento menciona un ejemplo de API de geocodificación basada en datos de OpenStreetMap.
  • Ejemplos de código en Python: El documento incluye ejemplos de cómo procesar XML utilizando el módulo
    xml.etree.ElementTree
    y cómo trabajar con JSON utilizando el módulo
    json
. También se muestra un ejemplo de cómo interactuar con una API de geocodificación.

En resumen, el documento explora cómo las aplicaciones web intercambian datos a través de la red utilizando formatos como XML y JSON, y cómo se definen las interacciones a través de APIs en un enfoque orientado a servicios.

Python for Everybody (Py4E) Seccion 12 HTTP

Fuente: Gemini  

Aquí tienes un resumen del documento "Pythonlearn-12-HTTP.pptx":


El documento "Pythonlearn-12-HTTP.pptx" se centra en la programación en red utilizando Python, específicamente en el Protocolo de Control de Transmisión (TCP) y el Protocolo de Transferencia de Hipertexto (HTTP).

Conceptos Clave:
  • Protocolo de Control de Transmisión (TCP):
    • Construido sobre IP (Protocolo de Internet).
    • Asegura la retransmisión de datos si se pierden y maneja el "control de flujo".
    • Proporciona un "canal" confiable para la comunicación.
  • Conexiones TCP / Sockets:
    • Un socket de Internet es un punto final de una comunicación bidireccional entre procesos a través de una red basada en el Protocolo de Internet.
  • Números de Puerto TCP:
    • Un puerto es un punto final de comunicación de software específico de una aplicación o proceso.
    • Permite que múltiples aplicaciones en red coexistan en el mismo servidor.
    • Existen números de puerto TCP bien conocidos, como el puerto 80 para servidores web.
  • Sockets en Python:
    • Python tiene soporte incorporado para sockets TCP a través del módulo socket.
    • Se muestra un ejemplo de cómo crear un socket, conectarse a un host y puerto, y enviar/recibir datos.
  • Protocolos de Aplicación:
    • Son las reglas que definen qué hacer con el socket una vez establecida una conexión confiable.
    • Ejemplos incluyen protocolos para correo y la World Wide Web.
  • HTTP - Protocolo de Transferencia de Hipertexto:
    • Es el protocolo de capa de aplicación dominante en Internet.
    • Se inventó para la Web para recuperar HTML, imágenes y documentos.
    • El concepto básico es: establecer una conexión, solicitar un documento, recuperar el documento y cerrar la conexión.
    • Un protocolo es un conjunto de reglas que todas las partes siguen para predecir el comportamiento de los demás.
  • Obtención de datos del servidor:
    • Cuando un usuario hace clic en un enlace, el navegador se conecta al servidor web y emite una solicitud "GET" para obtener el contenido de la página.
    • El servidor devuelve el documento HTML al navegador.
  • Estándares de Internet:
    • Los estándares para todos los protocolos de Internet son desarrollados por la Internet Engineering Task Force (IETF).
    • Los estándares se llaman "RFCs" (Request for Comments).
  • Realización de una solicitud HTTP en Python:
    • Se muestra un ejemplo de código para realizar una solicitud HTTP utilizando sockets en Python, enviando una solicitud GET y recibiendo la respuesta.
    • La respuesta HTTP consta de un encabezado (HTTP Header) y un cuerpo (HTTP Body).
  • Caracteres y Cadenas:
    • Se explica la codificación ASCII, donde cada carácter se representa con un número entre 0 y 256, almacenado en 8 bits (un byte).
    • Se introduce el concepto de caracteres multibyte y UTF-8 como la práctica recomendada para codificar datos que se intercambian entre sistemas.
    • En Python 3, todas las cadenas son Unicode internamente.
    • Al comunicarse con recursos de red, es necesario codificar las cadenas de Python 3 en una codificación de caracteres (generalmente UTF-8) y decodificar los datos recibidos.
  • Facilitando HTTP con urllib:
    • La biblioteca urllib simplifica el trabajo con HTTP, haciendo que las páginas web parezcan archivos.
    • Se muestra cómo usar urllib.request.urlopen() para abrir una URL y leer su contenido línea por línea.
  • Análisis de HTML (Web Scraping):
    • El "Web Scraping" es cuando un programa simula ser un navegador para recuperar páginas web, extraer información y navegar por más páginas.
    • Se menciona la biblioteca BeautifulSoup como una forma fácil de analizar HTML.
    • Se proporciona un ejemplo de código que utiliza BeautifulSoup para extraer enlaces de una página web.
En resumen, el documento cubre los fundamentos de la programación en red con Python, desde los protocolos de bajo nivel como TCP hasta los protocolos de aplicación como HTTP, y cómo interactuar con recursos web utilizando sockets y bibliotecas como urllib y BeautifulSoup.

Python For Everybody (Py4E) Seccion 11. Expresiones regulares.

  

Aquí tienes un resumen del documento "Pythonlearn-11-Regex.pptx":


El documento "Pythonlearn-11-Regex.pptx" trata sobre las Expresiones Regulares (Regex) en Python, una herramienta poderosa para la búsqueda y el análisis de cadenas de texto.

Conceptos clave:
  • ¿Qué son las expresiones regulares? Son expresiones "comodín" inteligentes para buscar y analizar cadenas de texto, proporcionando un medio conciso y flexible para hacer coincidir patrones de caracteres.
  • Módulo re: Para usar expresiones regulares en Python, debes importar el módulo re.
  • re.search(): Se utiliza para verificar si una cadena coincide con una expresión regular, de forma similar al método find() para cadenas.
  • re.findall(): Se usa para extraer porciones de una cadena que coinciden con tu expresión regular, similar a una combinación de find() y el "slicing".
Guía rápida de expresiones regulares:
  • ^: Coincide con el comienzo de una línea.
  • $: Coincide con el final de la línea.
  • .: Coincide con cualquier carácter.
  • \s: Coincide con un espacio en blanco.
  • \S: Coincide con cualquier carácter que no sea espacio en blanco.
  • *: Repite un carácter cero o más veces (codicioso).
  • *?: Repite un carácter cero o más veces (no codicioso).
  • +: Repite un carácter una o más veces (codicioso).
  • +?: Repite un carácter una o más veces (no codicioso).
  • [aeiou]: Coincide con un solo carácter del conjunto listado.
  • [^XYZ]: Coincide con un solo carácter que no esté en el conjunto listado.
  • [a-z0-9]: El conjunto de caracteres puede incluir un rango.
  • (: Indica dónde debe comenzar la extracción de la cadena.
  • ): Indica dónde debe terminar la extracción de la cadena.
Coincidencia codiciosa vs. no codiciosa:
  • Coincidencia codiciosa: Los caracteres de repetición (* y +) se extienden en ambas direcciones para coincidir con la cadena más larga posible.
  • Coincidencia no codiciosa: Al añadir un ? a los caracteres de repetición (+? y *?), la coincidencia se vuelve "no codiciosa", buscando la cadena más corta posible.
Extracción de cadenas:
  • Puedes refinar la coincidencia para re.findall() y determinar qué porción de la coincidencia se debe extraer utilizando paréntesis. Los paréntesis no forman parte de la coincidencia, pero indican dónde comenzar y terminar la extracción.
El documento también incluye ejemplos de código para ilustrar cómo usar re.search(), re.findall(), y cómo realizar la extracción de cadenas con expresiones regulares, incluyendo el manejo de la coincidencia codiciosa y no codiciosa. También aborda el uso del carácter de escape \ para tratar caracteres especiales como normales.

Python for Everybody (Py4E) Seccion 10. Tuplas

Fuente: gemini.  

Aquí tienes un resumen del documento "Pythonlearn-10-Tuples.pptx":

  • ¿Qué son las tuplas? Las tuplas son un tipo de secuencia similar a las listas, con elementos indexados que comienzan en 0.
  • Inmutabilidad: A diferencia de las listas, las tuplas son "inmutables", lo que significa que su contenido no se puede modificar una vez creadas, similar a las cadenas de texto.
  • Operaciones no permitidas: No puedes usar métodos como sort(), append(), o reverse() directamente en las tuplas, ya que no son mutables.
  • Eficiencia: Las tuplas son más eficientes en términos de uso de memoria y rendimiento que las listas, ya que Python no necesita construir estructuras modificables para ellas. Por esta razón, se prefieren las tuplas para variables temporales.
  • Asignación: Puedes asignar tuplas al lado izquierdo de una declaración de asignación, incluso omitiendo los paréntesis.
  • Tuplas y diccionarios: El método items() de los diccionarios devuelve una lista de tuplas (clave, valor).
  • Comparabilidad: Los operadores de comparación funcionan con tuplas y otras secuencias. La comparación se realiza elemento por elemento hasta encontrar una diferencia.
  • Ordenar listas de tuplas: Puedes ordenar una lista de tuplas para obtener una versión ordenada de un diccionario. Esto se puede hacer utilizando el método items() del diccionario y la función sorted(). También puedes ordenar por valores en lugar de claves creando una lista de tuplas en el formato (valor, clave).
  • Versión más corta: Es posible crear una lista de tuplas invertidas y luego ordenarla utilizando una comprensión de lista.
El documento también incluye ejemplos de código para ilustrar cada concepto.

sábado, 18 de octubre de 2025

La importancia de Self en POO

 

self es una convención utilizada en la Programación Orientada a Objetos (POO), especialmente en lenguajes como Python, que se refiere a la instancia (el objeto) sobre la que se está ejecutando un método.


Función y Significado de self

La función principal de self es permitir que los métodos de una clase accedan y manipulen los atributos y otros métodos de ese objeto específico.

1. Referencia a la Instancia Actual (El Objeto)

  • Identidad: Cuando creas un objeto a partir de una clase (una instancia), self actúa como un puntero o una referencia a ese objeto recién creado.

  • Manejo de Métodos: Cada vez que llamas a un método en un objeto (ej: mi_coche.acelerar()), Python pasa automáticamente ese objeto (mi_coche) como el primer argumento al método acelerar(), y ese argumento se nombra por convención como self.

2. Acceso a Atributos de Instancia

La función más crucial de self es distinguir los atributos de la instancia de las variables locales dentro del método.

  • Ejemplo: Si una clase Coche tiene un atributo velocidad, dentro de un método como acelerar(), usas self.velocidad para acceder o modificar la velocidad del coche específico que llamó al método. Sin self, el método no sabría a qué variable velocidad se está refiriendo.

3. Definición del Método Constructor (__init__)

self es fundamental en el método constructor (__init__) de una clase:

  • __init__(self, ...): Este método se llama cuando se crea un nuevo objeto. self es el primer parámetro y se usa para inicializar los atributos de ese nuevo objeto.

En resumen:

FunciónPropósito
PunteroHace referencia al objeto que está llamando al método.
AccesoPermite a los métodos leer y modificar las variables internas (atributos) de ese objeto.
DistinciónSepara las variables locales del método de los atributos de la instancia.

Nota: Aunque el término estándar es self, en la mayoría de los lenguajes POO (como C++ o Java) se utiliza la palabra clave this con la misma función. El uso de self es una fuerte convención, pero no una palabra clave reservada, de Python.

Como iniciar Gemini en Python.

>>from google import genai

>>client = genai.Client()

>>response = client.models.generate_content(
>>    model="gemini-2.5-flash",
>>    contents="Explain how AI works in a few words",
>> )

>>print(response.text)

sábado, 27 de septiembre de 2025

Python For Everybody (Py4E) Seccion 9. Diccionarios

 Aquí tienes un resumen de la presentación "Pythonlearn-09-Dictionaries.pptx":


La presentación "Pythonlearn-09-Dictionaries" cubre los siguientes puntos clave sobre los diccionarios en Python:
  • ¿Qué es una colección? Una colección permite almacenar múltiples valores en una sola variable, a diferencia de las variables que solo pueden contener un valor a la vez.
  • Listas vs. Diccionarios:
    • Las listas son colecciones lineales de valores, donde la búsqueda se realiza por posición (índice numérico). Son mutables, lo que significa que sus elementos pueden modificarse.
    • Los diccionarios son colecciones de pares clave-valor, donde la búsqueda se realiza por una "etiqueta" o "clave". Son la colección de datos más potente de Python y permiten operaciones rápidas similares a las de una base de datos.
  • Literales de diccionario (Constantes): Los diccionarios se definen utilizando llaves {} y pares clave : valor. Se puede crear un diccionario vacío con {}.
  • Diccionarios a lo largo del tiempo en Python: Antes de Python 3.7, los diccionarios no mantenían las entradas en el orden de inserción. A partir de Python 3.7 (2018), los diccionarios conservan el orden en que se insertaron las entradas.
  • Contadores con diccionarios: Un uso común de los diccionarios es contar la frecuencia con la que se "ve" algo. Se puede inicializar una clave con un valor de 1 cuando se encuentra por primera vez y luego incrementar el valor en 1 en cada ocurrencia posterior.
  • Errores de diccionario (Tracebacks): Es un error hacer referencia a una clave que no está en el diccionario (KeyError). El operador in se puede usar para verificar si una clave existe en el diccionario antes de intentar acceder a ella.
  • El método get() para diccionarios: El método get(clave, valor_por_defecto) simplifica el patrón de verificar si una clave existe y proporcionar un valor predeterminado si no es así, evitando errores. Por ejemplo, counts.get(name, 0) devuelve el valor asociado a name si existe, o 0 si no.
  • Contar palabras en texto: Los diccionarios son ideales para contar la frecuencia de palabras en un texto. El patrón general es dividir la línea en palabras, luego iterar sobre las palabras y usar un diccionario para rastrear el recuento de cada palabra de forma independiente.
  • Bucles definidos y diccionarios: Se puede usar un bucle for para iterar a través de todas las claves de un diccionario y acceder a sus valores correspondientes.
  • Recuperar listas de claves y valores: Se pueden obtener listas de claves (.keys()), valores (.values()) o pares clave-valor (.items()) de un diccionario. El método .items() devuelve una lista de tuplas (pares clave-valor).
  • Dos variables de iteración: Al iterar sobre jjj.items(), se pueden usar dos variables de iteración (aaa, bbb) donde la primera es la clave y la segunda es el valor correspondiente.
  • Ejemplo de uso de bucles anidados: Se muestra un ejemplo de cómo usar bucles anidados con diccionarios para encontrar la palabra más común en un archivo.

Entradas recientes

Python For Everybody (Py4E) Seccion 16. Visualizacion de datos.

  Aquí tienes un resumen del documento "Pythonlearn-16-Data-Viz.pptx": Resumen elaborado con Gemini.   E l documento "Pythonl...

Entradas Populares