Fundamentos de Python 2-1
Fundamentos de Python 2-1
221550244
Fundamentos de Python 2
➢ Módulos:
Los módulos o mod python sirven para organizar un código. Son ficheros externos en código de
Python que pueden importarse en tus propios ficheros. Un código que no sea capaz de
responder a las necesidades de los usuarios será olvidado rápidamente y reemplazado
instantáneamente por un código nuevo, mejor y más flexible.
➢ Importar módulo.
La importación de un módulo se realiza mediante una instrucción denominada “importar”.
Güizado Espinola Sandra Paola.
221550244
Hay una condición: el módulo tiene que haber sido importado previamente como un todo (es
decir, usando el “módulo” de importación “instrucción” -desde el “módulo” no es suficiente). La
función devuelve una lista ordenada alfabéticamente que contiene todos los nombres de
entidades disponibles en el módulo identificado por un nombre pasado a la función como
argumento.
Los datos producidos por computadoras deterministas no pueden ser aleatorios de ninguna
manera.
Un generador de números aleatorios toma un valor llamado semilla, lo trata como un valor de
entrada, calcula un número "aleatorio" basándose en él (el método depende del algoritmo
elegido) y produce un nuevo valor semilla.
La duración de un ciclo en el que todos los valores semilla son únicos puede ser muy larga, pero
no es infinita: tarde o temprano los valores semilla comenzarán a repetirse, y los valores
generadores también se repetirán. Esto es normal. Es una característica, no un error o un error.
El valor inicial, establecido durante el inicio del programa, determina el orden en el que
aparecerán los valores generados.
El factor aleatorio del proceso se puede aumentar configurando la semilla con un número tomado
del tiempo actual; esto puede garantizar que cada inicio del programa comience desde un valor
de semilla diferente (ergo, usará diferentes números aleatorios).
Güizado Espinola Sandra Paola.
221550244
➢ Funciones:
1. Una función llamada “directorio()” puede mostrarle una lista de las entidades contenidas
dentro de un módulo importado.
2. El “matemáticas” El módulo acopla más de 50 símbolos (funciones y constantes) que
realizan operaciones matemáticas (coseno(), poder(), factorial()) o proporcionando
valores importantes (como π y el símbolo de Euler e ).
3. El “módulo aleatorio” agrupa más de 60 entidades diseñadas para ayudarle a utilizar
números pseudoaleatorios.
➢ Paquetes:
En Python, un paquete es simplemente un directorio que contiene módulos. Cada paquete en
Python debe contener el archivo __init__.py así nos aseguramos de indicar al intérprete de
Python que ese directorio es un paquete. También podemos importar un Paquete así como lo
hacemos con los módulos.
1. Un módulo es un contenedor lleno de funciones - puedes empaquetar tantas funciones
como desees en un módulo y distribuirlo por todo el mundo.
2. un nombre claro e intuitivo al módulo que las contiene (por ejemplo, no le des el nombre
videojuegos a un módulo que contiene funciones destinadas a participar y formatear
discos duros).
Las computadoras almacenan los caracteres como números. Cada carácter utilizado por una
computadora corresponde a un número único, y viceversa. Esta asignación debe incluir más
caracteres de los que podrías esperar. Muchos de ellos son invisibles para los humanos, pero
esenciales para las computadoras. Algunos de estos caracteres se llaman espacios en blanco,
mientras que otros se nombran caracteres de control, porque su propósito es controlar
dispositivos de entrada y salida.
• Las computadoras almacenan caracteres como números. Hay más de una forma posible de
codificar caracteres, pero sólo algunas de ellas ganaron popularidad mundial y se utilizan
comúnmente en TI: son ASCII (utilizado principalmente para codificar el alfabeto latino y
algunos de sus derivados) y UNICODE (capaz de codificar virtualmente todos los alfabetos
utilizados por los humanos).
• Un número correspondiente a un carácter particular se llama punto de código.
• UNICODE utiliza diferentes formas de codificación a la hora de almacenar los caracteres
mediante archivos o memoria del ordenador: dos de ellas son UCS-4 y UTF-8 (este último es
el más común ya que desperdicia menos espacio de memoria).
1. Las cadenas de Python son secuencias inmutables y pueden indexarse, dividirse e iterarse
como cualquier otra secuencia, además de estar sujetas a la sen y no en operadores. Hay
dos tipos de cadenas en Python:
• cadenas de una sola línea, que no pueden cruzar los límites de las líneas; las
denotamos usando apóstrofes ('cadena') o comillas ("cadena")
Güizado Espinola Sandra Paola.
221550244
• cadenas de varias líneas, que ocupan más de una línea de código fuente, delimitadas
por trígrafos.
2. La longitud de una cuerda está determinada por lalen()función. El carácter de escape (\)
no se cuenta.
3. Las cadenas se pueden concatenar usando el+operador, y replicado utilizando
el*operador.
4. El par de funcioneschr()yorden()se puede utilizar para crear un carácter utilizando su
punto de código y para determinar un punto de código correspondiente a un carácter.
5. Algunas otras funciones que se pueden aplicar a cadenas son:
• lista()– crea una lista que consta de todos los caracteres de la cadena.
• máx()– encuentra el carácter con el punto de código máximo.
• mín()– encuentra el personaje con el punto de código mínimo.
6. El método nombrado índice() encuentra el índice de una subcadena determinada dentro
de la cadena.
7. Algunos de los métodos que ofrecen las cadenas son:
➢ Conceptos básicos:
Casi todos los programas y técnicas que ha utilizado hasta ahora pertenecen al estilo de
programación procedimental. Es cierto que ha utilizado algunos objetos integrados, pero al
referirnos a ellos, sólo mencionamos el mínimo absoluto.
El enfoque de objetos es bastante joven (mucho más joven que el enfoque procedimental) y es
particularmente útil cuando se aplica a proyectos grandes y complejos llevados a cabo por
grandes equipos formados por muchos desarrolladores.
Además, puede crear muchas aplicaciones útiles, incluso si no sabe nada sobre clases y objetos,
pero debe tener en cuenta que algunos de los problemas (por ejemplo, el manejo de la interfaz
gráfica de usuario) pueden requerir un enfoque de objetos estricto.
Cada objeto tiene un conjunto de rasgos (se llaman propiedades o atributos; usaremos ambas
palabras como sinónimos) y es capaz de realizar un conjunto de actividades (que se llaman
métodos).
➢ Enfoque procedimental:
variables de diferentes tipos, mientras que el mundo del código está habitado por código
agrupado en módulos y funciones. Las funciones pueden utilizar datos, pero no al revés.
➢ Enfoque objetal:
El enfoque objetal sugiere una forma de pensar completamente diferente. Los datos y el código
están encerrados en un mismo mundo, divididos en clases.
Cada clase es como una receta que se puede utilizar cuando se desea crear un objeto útil (de aquí
proviene el nombre del enfoque). Puedes producir tantos objetos como necesites para resolver
tu problema.
➢ Objeto:
Un objeto es una encarnación de los requisitos, rasgos y cualidades asignados a una clase
específica. Esto puede parecer simple, pero tenga en cuenta las siguientes circunstancias
importantes. Las clases forman una jerarquía.
Esto puede significar que un objeto que pertenece a una clase específica pertenece a todas las
superclases al mismo tiempo. También puede significar que cualquier objeto que pertenezca a
una superclase puede no pertenecer a ninguna de sus subclases.
La convención de programación de objetos supone que cada objeto existente puede estar
equipado con tres grupos de atributos:
➢ Pilas:
• Una pila es una estructura desarrollada para almacenar, la pila es un objeto con dos
operaciones elementales, convencionalmente denominadas push (cuando se coloca un
nuevo elemento en la parte superior) y pop (cuando se quita un elemento existente de la
parte superior).tos de una forma muy específica.
• La pila es un objeto con dos operaciones elementales, convencionalmente
denominadas push (cuando se coloca un nuevo elemento en la parte superior)
y pop (cuando se quita un elemento existente de la parte superior).
Güizado Espinola Sandra Paola.
221550244
Primero, debes decidir como almacenar los valores que llegarán a la pila. Sugerimos utilizar el
método más simple, y emplear una lista para esta tarea.
➢ Variables de instancia:
• Debe haber una manera de verificar con seguridad si un objeto específico posee la
propiedad que deseas utilizar (a menos que quieras generar una excepción,
siempre vale la pena considerarlo).
• Cada objeto lleva su propio conjunto de propiedades, no interfieren entre sí de
ninguna manera. Tales variables (propiedades) se llaman variables de instancia.
• La palabra instancia sugiere que están estrechamente conectadas a los objetos (que
son instancias de clase), no a las clases mismas.
➢ Variables de clase:
• Una variable de clase es una propiedad que existe en una sola copia y se almacena
fuera de cualquier objeto.
• No existe una variable de instancia si no hay ningún objeto de la clase; solo existe
una variable de clase en una copia, incluso si no hay objetos en la clase.
Güizado Espinola Sandra Paola.
221550244
➢ Módulo 4. Varios
➢ Generadores:
Un generador de Python es un fragmento de código especializado capaz de producir una serie de
valores y controlar el proceso de iteración. Esta es la razón por la cual los generadores a menudo
se llaman iteradores, y aunque hay quienes pueden encontrar una diferencia entre estos dos,
aquí los trataremos como uno mismo.
➢ Función range:
La función range() es un generador, la cual también es un iterador.
Una función devuelve un valor bien definido, el cual, puede ser el resultado de una evaluación
compleja, por ejemplo, de un polinomio, y se invoca una vez, solo una vez. Un generador devuelve
una serie de valores, y en general, se invoca (implícitamente) más de una vez.
➢ Interadores:
El protocolo iterador es una forma en que un objeto debe comportarse para ajustarse a las reglas
impuestas por el contexto de las sentencias for e in. Un objeto conforme a estas reglas se llama
iterador.
Un iterador debe proporcionar dos métodos:
o __iter__() el cual debe devolver el objeto en sí y que se invoca una vez (es necesario para
que Python inicie con éxito la iteración).
➢ __next__() el cual debe devolver el siguiente valor (primero, segundo, etc). de la serie
deseada: será invocado por las sentencias for/in para pasar a la siguiente iteración; si
no hay más valores a proporcionar, el método deberá generar la excepción
StopIteration.
➢ Sentencia yeild
El protocolo iterador no es difícil de entender y usar, pero también es indiscutible que el protocolo
es bastante inconveniente. La principal molestia que tiene es que necesita guardar el estado de
la iteración en las invocaciones subsecuentes de __iter__.
Güizado Espinola Sandra Paola.
221550244
➢ Archivos de Python:
➢ Flujos de archivos:
La apertura del stream no solo está asociada con el archivo, sino que también se debe declarar la
manera en que se procesará el stream. Esta declaración se llama open mode, si la apertura es
exitosa, el programa solo podrá realizar las operaciones que sean consistentes con el modo
abierto declarado.
Hay dos operaciones básicas a realizar con el stream:
o Lectura del stream: las porciones de los datos se recuperan del archivo y se colocan en un
área de memoria administrada por el programa (por ejemplo, una variable).
Güizado Espinola Sandra Paola.
221550244
o Escritura del stream: Las porciones de los datos de la memoria (por ejemplo, una variable)
se transfieren al archivo.
➢ Manejo de archivos:
Los archivos se pueden procesar de muchas maneras diferentes:
1. Dependen del contenido del archivo.
2. Dependen de las intenciones del programador.
• El procesamiento será muy simple: vas a copiar el contenido del archivo a la consola y
contarás todos los caracteres que el programa ha leído.
• La lectura del contenido de un archivo de texto se puede realizar utilizando diferentes
métodos; ninguno de ellos es mejor o peor que otro. Depende de ti cuál de ellos prefieres y
te gusta.
Si se aplica a un archivo de texto, la función es capaz de:
o Leer un número determinado de caracteres (incluso solo uno) del archivo y
devolverlos como una cadena.
o Leer todo el contenido del archivo y devolverlo como una cadena.
o Si no hay nada más que leer (el cabezal de lectura virtual llega al final del archivo), la
función devuelve una cadena vacía.
➢ Readline:
El método intenta leer una línea completa de texto del archivo, y la devuelve como una cadena
en caso de éxito. De lo contrario, devuelve una cadena vacía.
➢ Readlines:
Cuando el método readlines(), se invoca sin argumentos, intenta leer todo el contenido del
archivo y devuelve una lista de cadenas, un elemento por línea del archivo.
➢ Write:
El método se llama write() y espera solo un argumento: una cadena que se transferirá a un archivo
abierto (no lo olvides), el modo de apertura debe reflejar la forma en que se transfieren los datos.
o El método write() devuelve la cantidad de bytes escritos correctamente.
Güizado Espinola Sandra Paola.
221550244
o Si los valores difieren de la longitud de los argumentos del método, puede significar que
hay algunos errores de escritura.
➢ Bytearray:
Python tiene más de un contenedor, uno de ellos es una clase especializada llamada bytearray,
como su nombre indica, es un arreglo que contiene bytes (amorfos).
Los datos amorfos no pueden almacenarse utilizando ninguno de los medios presentados
anteriormente: no son cadenas ni listas.
o Bytearrays se asemejan a listas en muchos aspectos. Por ejemplo, son mutables, son
susceptibles a la función len(), y puedes acceder a cualquiera de sus elementos usando
indexación convencional.