0% encontró este documento útil (0 votos)
23 vistas18 páginas

Phyton 2

El documento habla sobre conceptos de programación en Python como módulos, cadenas, excepciones, clases y objetos. Explica cómo importar y usar módulos y sus funciones, y los métodos y propiedades de cadenas y clases.

Cargado por

Karla Galan
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas18 páginas

Phyton 2

El documento habla sobre conceptos de programación en Python como módulos, cadenas, excepciones, clases y objetos. Explica cómo importar y usar módulos y sus funciones, y los métodos y propiedades de cadenas y clases.

Cargado por

Karla Galan
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 18

David Ordaz Salinas

Grupo: 4MSC2
PHYTON ESENTIALS 2
Modulo 1
1.1 El código en Python permite importar módulos de varias maneras. Puedes importar un módulo
completo usando la declaración import nombre_del_módulo, importar múltiples módulos en
una sola línea, aunque se prefiere hacerlo de manera detallada. Si importas un módulo
completo, debes usar la notación de punto para acceder a sus entidades, como funciones o
variables. También puedes importar entidades individuales de un módulo, pero esto puede
causar conflictos de nombres en tu código. La forma menos recomendada es importar todas
las entidades de un módulo con from my_module import *, ya que esto aumenta el riesgo de
conflictos de nombres. Además, puedes cambiar el nombre de las entidades importadas en el
proceso utilizando la palabra clave as.

1.2 La función dir() puede proporcionar una lista de las entidades dentro de un módulo importado,
como se muestra en el ejemplo con el módulo os. El módulo math ofrece más de 50 funciones
y constantes para operaciones matemáticas, mientras que el módulo random proporciona más
de 60 entidades para trabajar con números pseudoaleatorios. Además, el módulo platform
contiene alrededor de 70 funciones que permiten explorar las capas subyacentes del sistema
operativo y hardware, brindando información sobre el entorno de ejecución del código.

1.3 Un módulo agrupa entidades relacionadas, mientras que un paquete es un contenedor que
acopla varios módulos bajo un mismo nombre, pudiendo ser distribuido como archivos o
empaquetado en un archivo zip.
Durante la primera importación de un módulo, Python traduce su código fuente a archivos
semi-compilados almacenados en pycache para mejorar el rendimiento.
Para indicar que una entidad en un módulo debe tratarse como privada, se puede marcar su
nombre con el prefijo _ o __, aunque esto es una recomendación y no una orden.
El dígrafo #! (shabang) se utiliza en sistemas Unix para indicar cómo se debe iniciar un archivo
fuente de Python, sin efecto en MS Windows.
Para que Python considere un directorio de un paquete no estándar, su nombre debe
agregarse a la lista de directorios de importación en la variable path de sys.
El archivo init.py en un paquete se ejecuta al importar, inicializando el paquete y sus
subpaquetes, aunque puede estar vacío, no debe faltar.
1.4 Para verificar la versión de pip, se pueden usar los comandos pip --version o pip3 --version,
dependiendo del entorno del sistema operativo.
Principales actividades de pip:
pip help operación_o_comando: Muestra una breve descripción de pip.
pip list: Muestra una lista de paquetes instalados.
pip show nombre_del_paquete: Muestra información, incluyendo dependencias, de un
paquete específico.
pip search cadena: Busca paquetes en PyPI cuyos nombres contienen la cadena.
pip install nombre: Instala un paquete en todo el sistema (puede requerir privilegios de
administrador).
pip install --user nombre: Instala un paquete solo para el usuario actual.
pip install -U nombre: Actualiza un paquete previamente instalado.
pip uninstall nombre: Desinstala un paquete previamente instalado.
Modulo 2
2.1 Las computadoras representan caracteres como números, y dos codificaciones populares son
ASCII (principalmente para el alfabeto latino) y UNICODE (capaz de codificar la mayoría de los
alfabetos humanos). El número que representa un carácter se denomina punto de código.

UNICODE utiliza diversas formas de codificación, como UCS-4 y UTF-8, siendo esta última la más
común debido a su eficiencia en el uso de espacio de memoria.

2.2 Las cadenas en Python son secuencias inmutables que pueden ser indexadas, divididas e
iteradas, y están sujetas a operadores como in y not in. Existen cadenas de una línea ('cadena') y
de varias líneas ('''cadena''' o """cadena""").

La longitud de una cadena se determina con la función len(), y el carácter de escape () no se


cuenta.

Las cadenas pueden concatenarse con el operador + y replicarse con el operador . Ejemplo:
(asterisk + plus) * 4 + asterisk produce la salida ++++.

Las funciones chr() y ord() permiten crear un carácter a partir de su punto de código y determinar
el punto de código correspondiente a un carácter. Las expresiones chr(ord(character)) == character
y ord(chr(codepoint)) == codepoint son siempre verdaderas.

Otras funciones aplicables a cadenas incluyen list() (crea una lista de caracteres), max() (encuentra
el carácter con el punto de código máximo) y min() (encuentra el carácter con el punto de código
mínimo).
2.3 Algunos de los métodos que ofrecen las cadenas son:

capitalize(): cambia todas las letras de la cadena a mayúsculas.

center(): centra la cadena dentro de una longitud conocida.

count(): cuenta las ocurrencias de un carácter dado.

join(): une todos los elementos de una tupla/lista en una cadena.

lower(): convierte todas las letras de la cadena en minúsculas.

lstrip(): elimina los caracteres en blanco al principio de la cadena.

replace(): reemplaza una subcadena dada con otra.

rfind(): encuentra una subcadena comenzando por el final de la cadena.

rstrip(): elimina los caracteres en blanco al final de la cadena.

split(): divide la cadena en una subcadena usando un delimitador dado.

strip(): elimina los espacios en blanco iniciales y finales.

swapcase(): intercambia las mayúsculas y minúsculas de las letras.

title(): hace que la primera letra de cada palabra sea mayúscula.

upper(): convierte todas las letras de la cadena en mayúsculas.

2. El contenido de las cadenas se puede determinar mediante los siguientes métodos (todos
devuelven valores booleanos):

endswith(): ¿La cadena termina con una subcadena determinada?

isalnum(): ¿La cadena consta solo de letras y dígitos?

isalpha(): ¿La cadena consta solo de letras?

islower(): ¿La cadena consta solo de letras minúsculas?

isspace(): ¿La cadena consta solo de espacios en blanco?

isupper(): ¿La cadena consta solo de letras mayúsculas?

startswith(): ¿La cadena consta solo de letras mayúsculas?


2.4 Las cadenas pueden compararse entre sí mediante operadores de comparación generales, pero
compararlas con números no produce resultados razonables. Por ejemplo, string == number
siempre es False, string != number siempre es True, y string >= number genera una excepción.

La ordenación de listas de cadenas se puede realizar con la función sorted(), que crea una nueva
lista ordenada, o con el método sort(), que ordena la lista en el momento.

Un número puede convertirse en una cadena utilizando la función str().

Una cadena puede convertirse en un número mediante las funciones int() o float(), pero la
conversión falla si la cadena no contiene un número válido, generando una excepción en ese caso.

2.5 Las cadenas son herramientas esenciales en el procesamiento de datos moderno, ya que la
mayoría de los datos útiles se presentan como cadenas. Por ejemplo, motores de búsqueda web
utilizan procesamiento de cadenas complejo para manejar grandes cantidades de datos.

La comparación estricta de cadenas en Python puede ser insatisfactoria para búsquedas


avanzadas, dando lugar a algoritmos de comparación difusa como la Distancia Hamming y la
Distancia Levenshtein.

La comparación de similitud acústica, que determina si dos cadenas suenan similares, se puede
realizar utilizando algoritmos como Soundex, especialmente útil para distintos idiomas o dialectos.

Debido a la limitada precisión de los datos enteros y flotantes, a veces es beneficioso almacenar y
procesar valores numéricos extensos como cadenas, técnica utilizada por Python cuando opera
con números enteros de gran longitud.

2.6 Una excepción es un evento anormal durante la ejecución del programa que debe manejarse
para evitar la terminación del mismo. El manejo de excepciones se realiza mediante bloques try-
except, donde el código riesgoso se coloca dentro del bloque try y cualquier excepción generada se
maneja en el bloque except.

Puedes manejar más de una excepción del mismo bloque try mediante múltiples bloques except,
cada uno etiquetado con un nombre diferente. En el mejor caso, solo se ejecuta uno de los bloques
except que coincida con la excepción generada.

No se puede agregar más de un bloque de excepción sin nombre después de los bloques con
nombre. En ese caso, un bloque except sin nombre debe colocarse después de los bloques con
nombre para manejar cualquier excepción no coincidente con los bloques anteriores.
2.7 No se pueden agregar más de un bloque except sin nombre después de los bloques con
nombre en una secuencia de manejo de excepciones.

Las excepciones predefinidas en Python forman una jerarquía, donde algunas son más generales
(como BaseException) y otras más específicas (por ejemplo, IndexError). Debes colocar
excepciones más generales antes que las más específicas en una secuencia de bloques except.

La sentencia raise NombreDeExcepción en Python puede generar una excepción bajo demanda.
Sin especificar un nombre, solo se puede usar dentro del bloque except y genera la misma
excepción que se está manejando actualmente.

La sentencia assert expression evalúa la expresión y genera la excepción AssertError si la expresión


es igual a cero, una cadena vacía o None. Se utiliza para proteger partes críticas del código contra
datos inesperados.
Modulo 3
3.1 Una clase es una idea abstracta que puede utilizarse para crear objetos.

La relación entre clases se llama herencia, donde una clase derivada es la subclase y la clase de la
que deriva es la superclase. Las relaciones se representan en un diagrama de herencia.

Los objetos tienen un nombre que los identifica, propiedades y métodos.

En Python, se utiliza la palabra clave class para definir una clase.

Para crear un objeto de una clase, se utiliza la clase como si fuera una función. Por ejemplo,
this_is_an_object = This_Is_A_Class().

3.2 Una pila es un objeto que sigue el modelo LIFO y realiza operaciones como push() y pop() para
almacenar y recuperar datos.

La implementación procedural de una pila puede mejorarse mediante la Programación Orientada a


Objetos (POO).

Un método de clase es una función dentro de una clase capaz de acceder a todos sus
componentes.

El constructor de una clase en Python se llama init y se utiliza para crear nuevos objetos.

Cada método de clase debe contener al menos un parámetro (generalmente llamado self) utilizado
por los objetos para identificarse.

Para ocultar componentes de una clase del mundo exterior, se utiliza el doble guion bajo (__), y
estos componentes se llaman privados.

3.3 Una variable de instancia es una propiedad cuya existencia depende de la creación de un
objeto y puede ser agregada o eliminada durante su vida útil. Se almacenan en un diccionario
llamado dict dentro de cada objeto.

Una variable de instancia puede ser privada si su nombre comienza con __, aunque aún es
accesible desde fuera de la clase con un nombre modificado.

Una variable de clase existe en una copia exacta y no requiere la creación de un objeto para ser
accesible. Se almacenan en un diccionario llamado dict dentro de cada clase.

La función hasattr() se utiliza para determinar si un objeto o clase contiene una propiedad
específica.
3.4 Un método es una función dentro de una clase, y el primer parámetro (generalmente llamado
self) identifica al objeto para el que se invoca el método.

Si una clase tiene un constructor (init), no puede devolver ningún valor y no se invoca
directamente.

Todas las clases (no los objetos) tienen propiedades especiales como name (nombre de la clase),
module (nombre del módulo en el que se declaró la clase) y bases (tupla con las superclases de la
clase). Estas propiedades se pueden acceder usando la notación de punto, por ejemplo,
Sample.__name__.

3.5 El método __str__() convierte el contenido de un objeto en una cadena legible, y se puede
redefinir para presentar el objeto de manera más elegante.

La función issubclass(Class_1, Class_2) determina si Class_1 es una subclase de Class_2.

La función isinstance(Object, Class) verifica si un objeto proviene de una clase indicada.

El operador is comprueba si dos variables hacen referencia al mismo objeto.

La función super() retorna la referencia a la superclase más cercana de la clase.

Los métodos, variables de instancia y de clase en una superclase se heredan automáticamente por
sus subclases.

Para encontrar propiedades de objeto/clase, Python las busca en el objeto mismo y todas las clases
involucradas en la línea de herencia, de abajo hacia arriba.

Si una subclase redefine un método, variable de clase o variable de instancia con el mismo nombre
que en la superclase, el nuevo nombre anula el anterior.
3.6 El bloque else: de la sentencia try se ejecuta cuando no ha habido ninguna excepción durante
la ejecución del bloque try.

El bloque finally: de la sentencia try siempre se ejecuta, independientemente de si se ha producido


una excepción o no.

La sintaxis except Exception_Name as exception_object: permite interceptar un objeto que


contiene información sobre una excepción pendiente. La propiedad args del objeto almacena
todos los argumentos pasados al constructor del objeto.

Las clases de excepciones pueden extenderse para enriquecerlas con nuevas capacidades o para
adaptar sus características a excepciones recién definidas.

Código de ejemplo:

python

Copy code

try:

assert __name__ == "__main__"

except:

print("fallido", end=' ')

else:

print("éxito", end=' ')

finally:

print("terminado")

La salida del código proporcionado es: éxito terminado.


Modulo 4
4.1 Un iterator es un objeto de una clase que proporciona al menos dos métodos: __iter__() se
invoca una vez cuando se crea el iterador y devuelve el propio objeto del iterador, y __next__() se
invoca para proporcionar el valor de la siguiente iteración y genera la excepción StopIteration
cuando la iteración llega a su fin.

La sentencia yield solo puede ser utilizada dentro de funciones y suspende la ejecución de la
función, devolviendo el argumento de yield como resultado. Se utiliza en funciones que actúan
como generadores.

Una expresión condicional es construida usando el operador if-else.

Una lista por comprensión se convierte en un generador cuando se emplea dentro de paréntesis.
Puede ser usado para generar una lista o un generador.

Una función lambda es una herramienta para crear funciones anónimas.

La función map(fun, list) crea una copia de la lista y aplica la función a todos sus elementos,
devolviendo un generador.

La función filter(fun, list) crea una copia de aquellos elementos de la lista para los cuales la función
retorna True, devolviendo un generador.

Un cierre es una técnica que permite almacenar valores a pesar de que el contexto en el que han
sido creados no existe más. Se utiliza para encapsular valores en una función interna.

4.2 Un archivo debe ser abierto antes de procesarlo y cerrado cuando el procesamiento concluya.
La apertura del archivo se realiza asociándolo con un stream, que es una representación abstracta
de los datos físicos almacenados en los medios. Los modos de apertura incluyen lectura, escritura y
actualización.

Dependiendo del contenido del archivo físico, se pueden usar diferentes clases de Python para
procesar archivos. BufferedIOBase puede procesar cualquier archivo, mientras que TextIOBase es
especializado para archivos de texto, dividiendo el stream en binario y de texto.

La función open() se utiliza para abrir un archivo con la siguiente sintaxis: open(file_name,
mode=open_mode, encoding=text_encoding). Crea un objeto stream asociado al archivo,
utilizando el modo y la codificación especificados, o genera una excepción en caso de error.

Tres streams predefinidos ya están abiertos al iniciar el programa: sys.stdin (entrada estándar),
sys.stdout (salida estándar), y sys.stderr (salida de error estándar).

La excepción IOError, creada cuando una operación de archivo falla, contiene una propiedad errno
que almacena el código de finalización de la acción fallida, permitiendo diagnosticar el problema.
4.3 Métodos para leer el contenido de un archivo:

read(number): Lee el número de caracteres/bytes del archivo y los retorna como una cadena.
Capaz de leer todo el archivo a la vez.

readline(): Lee una sola línea del archivo de texto.

readlines(número): Lee el número de líneas del archivo de texto; puede leer todas las líneas a la
vez.

readinto(bytearray): Lee los bytes del archivo y llena el bytearray con ellos.

Métodos para escribir contenido nuevo en un archivo:

write(string): Escribe una cadena a un archivo de texto.

write(bytearray): Escribe todos los bytes de un bytearray a un archivo.

El método open() devuelve un objeto iterable que se puede usar para recorrer todas las líneas del
archivo dentro de un bucle for. Por ejemplo:

python

Copy code

for line in open("file", "rt"):

print(line, end='')

4.4 La función uname devuelve un objeto con información sobre el sistema operativo, incluyendo
atributos como systemname, nodename, release, version y machine.

El atributo name del módulo os permite distinguir el sistema operativo, devolviendo valores como
'posix' para Unix, 'nt' para Windows y 'java' para Jython.

La función mkdir en el módulo os crea un directorio en la ruta proporcionada, ya sea relativa o


absoluta. Se puede utilizar makedirs para crear directorios recursivamente.

listdir() devuelve una lista con los nombres de archivos y directorios en una ruta dada, omitiendo
las entradas '.' y '..'. Si no se proporciona la ruta, devuelve los elementos del directorio de trabajo
actual.

chdir() cambia el directorio de trabajo actual a la ruta especificada. getcwd() devuelve la ruta del
directorio de trabajo actual.

Para eliminar directorios, se puede usar rmdir() para un directorio y removedirs() para directorios y
subdirectorios.
4.5 Para crear un objeto date, se usan los argumentos de año, mes y día. El método today devuelve
un objeto que representa la fecha local actual.

En Unix, la marca de tiempo representa segundos desde el 1 de enero de 1970. Puedes crear un
objeto date a partir de una marca de tiempo usando fromtimestamp.

El constructor de la clase time acepta seis argumentos opcionales: hour, minute, second,
microsecond, tzinfo, y fold.

El módulo time contiene la función sleep, que suspende la ejecución del programa por un número
específico de segundos.

En el módulo datetime, puedes representar fecha y hora con objetos separados o combinados en
un solo objeto llamado datetime.

El método strftime formatea una fecha y hora según las directivas especificadas en una cadena
(por ejemplo, %Y para año, %m para mes).

Se pueden realizar cálculos en objetos date y datetime, obteniendo un objeto timedelta que
representa la diferencia entre dos fechas. Este objeto se puede usar para realizar más cálculos. Por
ejemplo, d1 - d2 devuelve la diferencia en días, horas, minutos y segundos.

4.6 1. En el módulo calendar, los días de la semana se muestran de lunes a domingo. Cada día de la
semana tiene su representación en forma de número entero, donde el primer día de la semana
(lunes) está representado por el valor 0, mientras que el último día de la semana (domingo) está
representado por el valor 6.

2. Para mostrar un calendario de cualquier año, se emplea la función calendar con el año pasado
como argumento, por ejemplo:

import calendar

print(calendar.calendar(2020))

Para mostrar un calendario de cualquier mes del año, se emplea la función month, pasándoleel
año y el mes. Por ejemplo:

import calendar

print(calendar.month(2020, 9)).

La función setfirstweekday te permite cambiar el primer día de la semana. Toma un valor de 0 a 6,


donde 0 es domingo y 6 es sábado.

El resultado de la función weekday es un día de la semana como un valor entero para un año, mes
y día determinados:

import calendar

print(calendar.weekday(2020, 9, 29)) # Esto muestra 1, que significa martes.


La función weekheader devuelve los nombres de los días de la semana en forma abreviada. El
método weekheader requiere que se especifique el ancho en caracteres para un día de la semana.
Si el ancho que proporciona es mayor que 3, aún se obtendrán los nombres abreviados de los días
de la semana que constan de solo tres caracteres. Por ejemplo:

import calendar

print(calendar.weekheader(2)) # Esto muestra: Mo Tu We Th Fr Sa Su

Una función muy útil disponible en el módulo calendar es la función llamada isleap, que, como su
nombre indica, te permite comprobar si el año es bisiesto o no.

print("¡Hola mundo!")

Puedes crear un objeto calendar tu mismo usando la clase Calendar, que al crear el objeto, te
permite cambiar el primer día de la semana con el parámetro opcional firstweekday, por ejemplo:

import calendar

c = calendar.Calendar(2)

for weekday in c.iterweekdays():

print(weekday, end=" ")

# Resultado: 2 3 4 5 6 0 1

También podría gustarte