0% encontró este documento útil (0 votos)
110 vistas

Introducción A Python 2024

Cargado por

Paul Cubero
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
110 vistas

Introducción A Python 2024

Cargado por

Paul Cubero
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 123

Introducción a python

Academia Ciberseguridad

Academia-Ciberseguridad Python 1 / 123


Contenido
1 Introducción a python

2 Tuplas

3 Diccionarios

4 Módulos

5 Entornos virtuales en Python

6 Abrir documentos

7 Conjuntos

8 Algoritmo

9 Paradoja de Russell

10 Clases
Academia-Ciberseguridad Python 2 / 123
Introducción a python

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 3 / 123


Introducción a python

Python

Python es un lenguaje de programación dinámico multiparadigma, es decir,


permite que una variable sea de varios tipos y existan diversas maneras de
programar: programación orientada a objetos, programación funcional.

Academia-Ciberseguridad Python 4 / 123


Introducción a python

Nota histórica

Fue creado por Guido Van Rossum, informático holandés, quien trabajaba
para el centro de investigaciones (CWI).
Su implementación comenzó en 1989
Las versiones del 1.0 al 1.6 fueron hasta el 2000. Era muy parecido el
lenguaje al ABC.
Las versiones del 2.0 al 2.7 fueron hasta el 2008. Se incluyeron las
listas.
Las versiones del 3.0-3.9 en adelante son las actuales.
Su nombre se debe al grupo británico cómico Monty Python.

Academia-Ciberseguridad Python 5 / 123


Introducción a python

Aplicación de Python

Python es usado para en el dominio de varias aplicaciones, por decir algunos:

Desarrollo web: Django, Pyramid, Flask, Bottle.


Calculo numérico y cientı́fico: ScyPy, Pandas, Numpy
Desarrollo de software: Scons, Apache Gump

Academia-Ciberseguridad Python 6 / 123


Introducción a python

Nota: Instalación de Python y pip en Linux

Linux:
sudo dnf update
sudo dnf install python3
sudo dnf install pip

Academia-Ciberseguridad Python 7 / 123


Introducción a python

Instalación en Windows

Debemos descargar el archivo

Academia-Ciberseguridad Python 8 / 123


Introducción a python

Path

Es importante darle en el path, de lo contrario la terminal no reconocerá el


comando python y cuando se requieran correr programas desde la terminal
no se podrá.

Academia-Ciberseguridad Python 9 / 123


Introducción a python

instalación python

Para comprobar que tenemos instalado Python y que se reconocen los co-
mandos

Academia-Ciberseguridad Python 10 / 123


Introducción a python

Interfaz

Existen diversas interfaces para trabajar con Python:


1 Spider
2 PyCharm
3 Pyzo
4 Jupyter
5 Anaconda-(conda)
6 Visual Studio
7 Blog de notas
Sin embargo, también es posible abrir la consola en la terminal.

Academia-Ciberseguridad Python 11 / 123


Introducción a python

Instalación de Visual Studio Code

Es una interfaz que se usa sobre todo cuando trabajas proyectos. Facilita la
navegación de carpetas y la manipulación de los archivos enlazados entre sı́.

Academia-Ciberseguridad Python 12 / 123


Introducción a python

En caso de que nos pregunte sobre el path debemos decir que sı́.

Academia-Ciberseguridad Python 13 / 123


Introducción a python

Configuración de Visual-Studio code


Al ser un editor para varios lenguajes de programación, es necesario activar
las extrensiones del lenguaje para que te ayude a acompletar los comandos

Academia-Ciberseguridad Python 14 / 123


Introducción a python

Command Palette

terminal: Create New Terminal


Create New File

Academia-Ciberseguridad Python 15 / 123


Introducción a python

Operadores

Son sı́mbolos que le indican al lenguaje de programación que operación


realizar, van desde los aritméticos, hasta las relaciones lógicas.

Academia-Ciberseguridad Python 16 / 123


Introducción a python

Operadores Aritméticos

Sı́mbolo Descripción
+ Adición entre los operandos
- Substracción entre los operandos
* Multiplicación entre los operandos
/ División entre los operandos
% Módulo entre los operandos
** Potencia de los operandos
// División con resultado de número entero

Academia-Ciberseguridad Python 17 / 123


Introducción a python

Operadores relaciones

Sı́mbolo Descripción
> Devuelve True si el operador de la izquierda es
mayor que el operador de la derecha
< Devuelve True si el operador de la derecha es mayor
que el operador de la izquierda
== Devuelve True si ambos operandos son iguales
>= Devuelve True si el operador de la izquierda es
mayor o igual que el operador de la derecha
<= Devuelve True si el operador de la derecha es mayor
o igual que el operador de la izquierda
!= Devuelve True si ambos operandos no son iguales

Academia-Ciberseguridad Python 18 / 123


Introducción a python

Operadores Bit a Bit

Sı́mbolo Descripción
& Realiza bit a bit la operación AND en los operandos
| Realiza bit a bit la operación OR en los operandos
∧ Realiza bit a bit la operación XOR en los operandos
∼ Realiza bit a bit la operación NOT bit a bit. Invierte cada
bit en el operando
>> Realiza un desplazamiento a la derecha bit a bit. Desplaza
los bits del operador de la izquierda a la derecha tantos bits
como indica el operador de la derecha
<< Realiza un desplazamiento a la izquierda bit a bit. Desplaza
los bits del operando de la izquierda a la izquierda tantos
bits como especifique el operador de la derecha

Academia-Ciberseguridad Python 19 / 123


Introducción a python

Operadores de asignación

Sı́mbolo Descripción
= El valor 5 es asignado a la variable a
+= a += 5 es equivalente a a = a + 5
-= a -= 5 es equivalente a a = a - 5
*= a *= 3 es equivalente a a = a * 3
/= a /= 3 es equivalente a a = a / 3
La estructura anterior se puede hacer con todos los operadores aritméticos

Academia-Ciberseguridad Python 20 / 123


Introducción a python

Operadores lógicos

Son enunciados verdaderos (True) o falsos (false), las cuales se usan gene-
ralmente para alguna condición.
Sı́mbolo Descripción
and Devuelve True si ambos operandos son True
or Devuelve True si alguno de los operandos es True
not Devuelve True si alguno de los operandos False

Academia-Ciberseguridad Python 21 / 123


Introducción a python

Operadores de pertenecı́a

Sı́mbolo Descripción
in Devuelve True si el valor especificado se encuentra
en la secuencia. En caso contrario devuelve False.
not in Devuelve True si el valor especificado no se en-
cuentra en la secuencia. En caso contrario devuel-
ve False.
Se utilizan para comprobar si un valor o variable se encuentran en una
secuencia (lista, tupla, diccionario, conjunto o cadena).

Academia-Ciberseguridad Python 22 / 123


Introducción a python

Operadores de identidad

Sı́mbolo Descripción
is Devuelve True si los operandos se refieren al mismo
objeto. En caso contrario devuelve False.
is not Devuelve True si los operandos no se refieren al
mismo objeto. En caso contrario devuelve False.
Es decir, permite mostrar que dos variables con diferente nombre son iguales.

Academia-Ciberseguridad Python 23 / 123


Introducción a python

Python un lenguaje dinámico

A diferencia de otros lenguajes, en Python la declaración de variables se


puede hacer en cualquier momento.
Existen diversas variables en Python:
Numéricas: Los operadores de pertenencia senteros y flotantes
Strings: cadenas de texto
Boobleanos
Listas
Tuplas
Diccionarios

Academia-Ciberseguridad Python 24 / 123


Introducción a python

Sentencias de control de Flujo

Un bloque de código es un conjunto de intrucciones, las sentencias de control


nos permiten separarlas con cierta finalidad.
Las instrucciones se ejecutan en secuencia, pueden ser desde declaración de
variables hasta condicionales y ciclos

Academia-Ciberseguridad Python 25 / 123


Introducción a python

Condicionales- Sintaxis

Para hacer un condicional:


if condicion:
instrucciones
else:
intrucciones
Este tipo de sentencia sólo se ejecuta cuando es verdadera la condición, en
caso contrario es como sino existiera, no se evalua. También se puede usar
elif cuando es un if concatenado, se pone después del primer if.

Academia-Ciberseguridad Python 26 / 123


Introducción a python

Ejemplo de if

a=1.2 #cambiemos
if type(a)==str:
print("{} es una variable cadena".format(a))
elif type(a)==int:
print("{} es una variable entera".format(a))
else:
print("Se trata de otro tipo de variable")

Academia-Ciberseguridad Python 27 / 123


Introducción a python

Try y except

Cuando Python encuentra un error el programa se detiene, de esta manera la


función try te permite testear una sentencia sin que se pare el programa, es
decir, intenta ejecutarla y en caso de no poder sigue las demás instrucciones.
Además, existe una función que se llama except la cual se ejecuta cuando
ocurre un error. Por ejemplo:
try:
posible instrucci\'on incorrecta
except:
mensaje o acci\'on que queremos
La función try se puede entender como un if. La diferencia es que no va a
detener el programa en caso de no poder ejecutarse.

Academia-Ciberseguridad Python 28 / 123


Introducción a python

Ejemplos de try

Cuando try se ejecuta, se detiene cuando encuentra un error en la sentencia


try:
print(hola)
print("esto si se puede escribir")
except:
print("No existe esa variable")
cuando ejecutamos el siguiente código, se salta a la orden de except, porque
encuentra que no existe la variable hola.

Academia-Ciberseguridad Python 29 / 123


Introducción a python

except-búsqueda de errores

Podemos encontrar el tipo de error del que se trata


try:
e=10/0
except ZeroDivisionError:
print("No se puede dividir entre cero")

Academia-Ciberseguridad Python 30 / 123


Introducción a python

Nota: los errores más frecuentes

TypeError: aplicar una operación o función a un dato del tipo


inapropiado.
ZeroDivisionError : dividir por cero.
OverflowError: el cálculo excede el lı́mite para un tipo de dato
numérico.
IndexError: intentar acceder a una secuencia con un ı́ndice que no
existe.
KeyError: intenta acceder a un diccionario con una clave que no
existe.
FileNotFoundError: acceder a un fichero que no existe en la ruta
indicada.
ImportError: falla la importación de un módulo.
IndentationError: la indexación es incorrecta

Academia-Ciberseguridad Python 31 / 123


Introducción a python

try-else-finally

Es posible usar else y finally junto con el comando try y except


a,b=1,0
try:
c=a/b #sentencia a probar
except ZeroDivisionError: #opcional
print("No se puede dividir por cero")
else:
# se ejecuta si no hay excesi\'on
print("se puede dividr:", c)
finally:
#c\'odigo que se ejecuta
print("proceso terminado")

Academia-Ciberseguridad Python 32 / 123


Introducción a python

For-Sintaxis

El for se utiliza cuando se sabe cuantas veces se tiene que repetir las ins-
trucción.En python se pueden considerar dos tipos de for. El primero damos
un rango:
for i in range():
instrucciones
El segundo depende de un objeto
for i in objeto():
instrucciones

Academia-Ciberseguridad Python 33 / 123


Introducción a python

Ejemplo for con range

for i in range(4):
print("el valor de i es: ", i)
for i in range(3,6):
print("el valor de i es:", i)
for i in range(2,10,2):
print("El valor de i es: ", i)
Comprueba los diferentes valores que te muestra.

Academia-Ciberseguridad Python 34 / 123


Introducción a python

Ejemplo for con objeto

En el caso anterior se entiende que la variable i es un número entero, sin


embargo en este tipo de for no ocurre lo mismo. Sino que es parte del objeto
que se manda a llamar
a="soy una cadena"
for i in a:
print("Ya no soy un numero =(, sino {}".format(i))
Este tipo de for suele ser muy útil cuando se trabaja con diccionarios.

Academia-Ciberseguridad Python 35 / 123


Introducción a python

For enumerate

Con enumerate puedes usar ambos ı́ndices, tanto el del objeto como de la
posición, por ejemplo:
for ind, i in enumerate("tortilla"):
if i in "aeiou":
print("en el \'indice",ind,"hay una vocal, la",i)
Este for suele facilitar la programación cuando necesitas tanto los objetos
como los ı́ndices

Academia-Ciberseguridad Python 36 / 123


Introducción a python

For zip

Existe una forma de hacer un for con múltiples variables, se usa la función
zip. Combina elementos de dos variables
for i, k zip(variable1, variable2):
print(i, k)
Este tipo de for puede facilitar la programación cuando se trabajan bases
de datos.

Academia-Ciberseguridad Python 37 / 123


Introducción a python

Ejemplo de for con Zip

A= ["camello", "le\'on", "delf\'in", "rat\'on", "elefante",


"caballo", "lobo"]
B = [40, 12, 30, 2, 65, 30, 6]
for i, j in zip(A,B):
print("el", i, "vive ", j, "a~
nos")
print("el {} vive {} a~
nos".format(i,j))
Compueba el resultado. Nota que format se puede utilizar con varias varia-
bles.

Academia-Ciberseguridad Python 38 / 123


Introducción a python

While

Es una forma de iterar instrucciones, respecto a una condición. A diferencia


del for no se sabe cuántas veces será necesario repetir la instrucción, por
ello se controla con una condición.
while condici\'on:
instrucciones
La condición deberá ser modificada en algún paso de las instrucciones para
que termine el ciclo y al igual que el if sólo se ejecutará si es verdadera la
condición.

Academia-Ciberseguridad Python 39 / 123


Introducción a python

Ejemplo while

import random
while True:
a = random.randint(1,10)
print("yo ten\'ia", a, "perritos")
if a==1:
break
Vemos en este ejemplo que el proceso se acaba cuando a es igual a 1.

Academia-Ciberseguridad Python 40 / 123


Introducción a python

Help y Type

Para saber qué tipo de variable se tiene, la función type(), es cual nos
indica, si queremos saber más información de cómo usarla help(), el cual
nos va a desplegar información más detallada.

Academia-Ciberseguridad Python 41 / 123


Introducción a python

Cadenas de texto

Una de las variables que más se ocupan es la cadena de texto.


a="" #declaraci\'on
a="cadena de texto"

Academia-Ciberseguridad Python 42 / 123


Introducción a python

Algunas funciones de las cadenas

a="HOLA"
a.lower()
print('''veamos que no cambia el valor de {}, ejecutando
la funcion lower {} por ello debemos guardarla
en otra funci\'on'''.format(a,a.lower()))
a.upper()
c= a + " Adios" #concatenar
posicion_index=a[2]
print(a[0], a[1:3], "index")
print(a*2, a+a) #podemos hacer operaciones
print(a.find("la")) #encontrar una cadena -1 no encontro
print(a.replace("A","a"))
print("hola {1} {2} {0}".format("a", "b", "c"))

Academia-Ciberseguridad Python 43 / 123


Introducción a python

De cadenas a listas

Las cadenas de texto son inmutables, eso significa que no podemos cam-
biarlas por indices. Por ello, debemos trasformarlas en listas u otra variable
que si podamos cambiar para poder manipular su contenido dentro de la
variable.
a="de cadena a lista"
b=a.split()
print(b)

Academia-Ciberseguridad Python 44 / 123


Introducción a python

Listas

Las listas son un tipo de dato sencillo que pueden tener cualquier tamaño,
además de ser mutables, es decir, pueden cambiar con algún método.
a=list()
lista=[]
Los métodos disponibles se pueden ver:
dir(list())

Academia-Ciberseguridad Python 45 / 123


Introducción a python

Elementos de una lista

Ingresar a los elementos de la lista


a=[1,2,3,"hola"]
print(a[3])
b=[1,2,3,[1,"hola"]]
print(b[3][1])
c=[[1,2],3,[4,5,[1,"hola"]]]
Cómo le harı́as para ingresar a el hola de la variable c

Academia-Ciberseguridad Python 46 / 123


Introducción a python

Algunos métodos de la lista

#agregar un elemento
a.append(elemento)
#agregar varios elementos
a.extend(elemento1, elemento2,...,elemento_n)
#concatenar listas
c=[1,2,3]+[4,5,6]
#ordenar lista
a.sort()
#quitar elementos
c.pop(0)#posici\'on del elemento a quitar
#quita el primer elemento igual al escrito
c.remove(2)
#inserta un elemento en un indice
a.insert(index, elemento)

Academia-Ciberseguridad Python 47 / 123


Introducción a python

Copiar una lista

Copiar una lista no se hace igualando las listas, ya que si escribimos


a=[1,2,3]
b=a
a.append(4)
print(a)
print(b)
Es por ello que esta la función copy
a=[1,2,3]
b.copy(a)
c=a[:]#otra forma
d=list(a)
a.append("hola")
print(a,b,c,d)

Academia-Ciberseguridad Python 48 / 123


Introducción a python

Función copy

a=[1,2,3]
b.copy(a)
c=a[:]#otra forma
d=list(a)
a.append("hola")
print(a,b,c,d)

Academia-Ciberseguridad Python 49 / 123


Introducción a python

Listas de listas

Sin embargo, cuando hablamos listas de listas o listas anidadas, sólo funciona
la función copy
a=[[1,2],3,[4,5]]
b=a[:]
c=a.copy()
d=list(a)
b[2].append(7)
c[0]=[2]
print(a,b,c,d)

Academia-Ciberseguridad Python 50 / 123


Introducción a python Vectores

Vectores

Los vectores son arreglos, ya sea de matrices u objetos de mayor dimensión.


Para usarlos se debe de importar la librerı́a de Numpy
import numpy as np
x=np.array([1,2])

Academia-Ciberseguridad Python 51 / 123


Introducción a python Vectores

Algunas funciones de numpy

a = np.arange(-2,3,0.5) # inicio-fin-paso
b = np.linspace(-2,3,21) #inicio-fin-Num de elementos
c = np.array(range(-2,4)) # convierte una iterable, como
d=np.random.randint(1,50,10)#vectores aleatorios

Academia-Ciberseguridad Python 52 / 123


Introducción a python Vectores

Algunas funciones de numpy en matrices

A=np.array([[1,4,6],[7,11,15]]) #declaraci\'on
A.shape #dimensiones
np.eye(3) #matriz identidad tama~no 3
np.random.randint(1,100,(3,2)) #3X2 aleatoria
A=np.zeros((3,2)) #ceros
np.ones_like(c) #matriz de unos

Academia-Ciberseguridad Python 53 / 123


Introducción a python Vectores

Algunos ejemplos

a = np.array([1,2,3]) # un vector de 3 entradas


b = np.array([4,5,6]) # un vector de 3 entradas
A = np.array([[1,2,3],[4,5,6]]) # una matriz de 2x3
B = np.array([[1,2],[3,4],[5,6]]) # una matriz de 3x2

Academia-Ciberseguridad Python 54 / 123


Introducción a python Vectores

Operaciones con vectores

print("5a:", 5*a) # escalar por vector


print("a+b:", a+b) # suma de vectores
print("a-b:", a-b) # resta de vectores
print("ab punto:", a.dot(b)) # producto punto de vectore
print("ab outer:", np.outer(a,b)) # vector columna por vec
print("axb:", np.cross(a,b)) # producto cruz de vectores
print("Aa:", A.dot(a)) # matriz por vector
print("A^T:", A.T) # transpuesta de A
print("AB:", A.dot(B)) # producto de matrices, hay que c
print("BA:", np.dot(B,A)) # ahora invirtiendo el orden,

Academia-Ciberseguridad Python 55 / 123


Tuplas

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 56 / 123


Tuplas

Tuplas

Las tuplas son arreglos o datos agrupados con un único valor. Al igual que
las cadenas son inmutable, como las cadenas de texto.
variable=("a","b","c","d")
Si queremos modificarlas debemos primero convertirlas en lista o guardar
cada elemento en una variable diferente.
A,B,C,D=variable
#Son inmutables, porque no puedes cambiar sus elementos
varuable[0]="A" #nos va a marcar un error
Estas se vuelven muy importantes en las funciones.

Academia-Ciberseguridad Python 57 / 123


Diccionarios

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 58 / 123


Diccionarios

Diccionarios

Es una colección de par de mapeos, el cual está compuesto por las llaves y
los valores.
Diccionario={'llave': 'valor', 'llave2': 'valor2'}
Los valores pueden ser cualquier variable, muchas veces termina siendo una
lista. Los diccionarios agilizan mucho la programación cuando se trata con
bases de datos o valores que necesiten llaves.

Academia-Ciberseguridad Python 59 / 123


Diccionarios

Funciones de los diccionarios

diccionario={"a":"azul", "b":"borrego"}
#acceder tanto a las llaves como a los valores
diccionario.items()
#podemos hacerlos con un for
for i, k, in diccionario.items():
print("Esta es la llave ", i, "Este el valor", k )
#acceder a un valor, lo hacemos con las llaves
diccionario["a"]
#para cambiar los valores, tambi\'en accedemos a las llave
diccionario["a"]="AZUL"
#borrar valores, se hace con la llave
diccionario.pop("b")
#para averiguar si existe la llave
diccionario.get("llave-si-existe",0)
diccionario["la clave"]="al valor"#agregar elementos

Academia-Ciberseguridad Python 60 / 123


Diccionarios

Ejemplo

Podemos usar listas en los valores de los diccionarios para acomodar más
rápido nuestra información en una base de datos, como veremos más delan-
te.
mascotas=["perro", "gato", "pez"]
due~
nos=["juan", "PEdro", "carlos"]
Edad_mascotas=[12,7,2]
#creamos un diccionario
datos={"MASCOTAS":mascotas, "Due~
nos": due~
nos,
"EDAD_MASCOTAS":Edad_mascotas}
import pandas as pd
pd.DataFrame(datos)
Ejercicio: crea una lista de 5 nombres, 5 colores y 5 cosas

Academia-Ciberseguridad Python 61 / 123


Diccionarios

Variable set

Hay un tipo de variable que funciona con las propiedades de conjunto. Es


muy útil cuando se trata de agregar elementos no retidos
a=set()
a={1,2,3}
Podemos declarar de estas dos maneras un conjunto, notemos que las lla-
ves son de diccionario, pero al no ponerle el formato de llaves y valores,
automáticamente se convierte en un set()

Academia-Ciberseguridad Python 62 / 123


Diccionarios

Algunas funciones de set()

a=set([2,3,4])
a.add(1)#agregar un elemento
a.remove(1)#elimina
a.discard(100)#descarta
a.pop()#elimina un elemento aleatorio
a.clear()#elimina todo
print(10 in a)#para saber si existe
a=set([2,3,4])
b={4,5,6,7}
print(a|b)#union
print(a&b)#intersecci\'on
print(a-b)#diferencia

Academia-Ciberseguridad Python 63 / 123


Diccionarios

Funciones

Para definir una función


def nombre(variable):
instrucciones
return(variable)
Las funciones te ayudan mucho a comprimir o ahorrar lineas de código.

Academia-Ciberseguridad Python 64 / 123


Diccionarios

Ejemplo funciones

def suma(a,b):
return(a+b)
def resta(a,b):
return(a-b)
def calculadora(a,b):
return(suma(a,b),resta(a,b))
Como podemos darnos cuenta, el resultado es una tupla.

Academia-Ciberseguridad Python 65 / 123


Diccionarios

Ejemplo funciones con cadenas de texto


Las cadenas son inmutables, hagamos una función que pueda cambiar los
elementos de una cadena
def cambiar_str_list(cadena, elemento_cambiar, cambio_elem
cadena_lista=cadena.split()
if elemento_cambiar in cadena_lista:
indice=cadena_lista.index(elemento_cambiar)
cadena_lista.insert(indice,cambio_elemento)
cadena_lista.pop(indice+1)
cadena_nueva=" ".join(cadena_lista)
return(cadena_nueva)
else:
print("No existe esa palabra en la cadena")
return(cadena)
cadena="soy una cadena triste"
cambiar_str_list(cadena, "triste", "feliz")
Como podemos darnos cuenta, el resultado es una tupla.
Academia-Ciberseguridad Python 66 / 123
Módulos

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 67 / 123


Módulos Modulo sys

Modulo sys

El modulo de sys te permite explorar tu sistema operativo:

Comando Para qué sirve


sys.platform sistema operativo
sys.ps1 muestra modo primario del interprete
sys.ps2 muestra modo secundario del interprete
sys.version Versión de python
sys.exit Se sale de la compilación

Academia-Ciberseguridad Python 68 / 123


Módulos Modulo sys

Módulos

Los módulos o librerı́as son conjuntos de funciones y clases ya hechas por


diversos usuarios que se unen al proyecto de Python. Existen para diversas
cosas, desde hacer un vı́deo, hasta una aplicación o un analizador de red.

Academia-Ciberseguridad Python 69 / 123


Módulos Modulos

Librerı́as o modulos

Para importar los modulos, debemos hacerlo de la siguiente manera:


import modulo
import modulo as nombre
import modulo *
También podemos importar elementos en concreto de los módulos:
from math import pi
Para saber que funciones contiene el modulo se usa dir()

Academia-Ciberseguridad Python 70 / 123


Módulos Modulos

Dónde encontrar información sobre los modulos

https://docs.python.org/3/library/
https://pypi.python.org/

En estas url podemos encontrar información sobre el uso o datos generales


de los módulos que uno necesita.

Academia-Ciberseguridad Python 71 / 123


Módulos Modulos

Los módulos en linux

Los podemos encontrar generalmente en esta ruta:

/usr/lib64/python3.10

Sin embargo, a veces cambia la dirección. La podremos encontrar con:

find /usr -type f -name ”*.py”— less

Academia-Ciberseguridad Python 72 / 123


Módulos Modulo os

Modulo os

Te permite usar comandos del sistema

Comando Para qué sirve


os.getcwd() Directorio actual
os.mkdir() Hace nuevos directorio
os.system(”comando”) Realiza comandos de Shell
os.listdir() Lista los directorio
os.chdir() Cambia directorio
os.remove() borra un archivo
os.removedirs() borra directorios

Academia-Ciberseguridad Python 73 / 123


Módulos modulo glob

Modulos glob

Es un módulo que sirve para encontrar las rutas de los archivos y clasificarlos.

Comando Para qué sirve


glob.glob(ruta”) Te da todas las rutas de los archivos
glob.escape(ruta”) Quita los caracteres especiales de la ruta

Academia-Ciberseguridad Python 74 / 123


Entornos virtuales en Python

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 75 / 123


Entornos virtuales en Python

Entornos Virtuales en python

Un entorno virtual en Python es una herramienta esencial para facilitar el


desarrollo y la gestión de proyectos en Python. Sirve para crear un entorno
aislado en el que se pueden instalar paquetes y dependencias especı́ficas
para un proyecto particular, sin afectar al sistema o a otros proyectos

Academia-Ciberseguridad Python 76 / 123


Entornos virtuales en Python

¿Para que funciona un entorno virtual?

Las principales caracterı́sticas al utilizar entornos virtuales son:


Aislamiento de dependencias:. Al crear un entorno virtual, puedes
instalar versiones especı́ficas de bibliotecas y paquetes que tu proyecto
necesita, sin preocuparte por las versiones instaladas globalmente en
el sistema. Esto evita conflictos de dependencias entre diferentes
proyectos y mejora la reproducibilidad del entorno.
Portabilidad:. Un entorno virtual puede empaquetarse junto con tu
proyecto, lo que facilita la distribución y ejecución del código en
diferentes sistemas y máquinas sin preocuparte por las configuraciones
locales.

Academia-Ciberseguridad Python 77 / 123


Entornos virtuales en Python

¿Para que funciona un entorno virtual?

Limpieza del sistema:. Al trabajar en múltiples proyectos, es común


que cada uno requiera diferentes versiones de las mismas bibliotecas.
Utilizar un entorno virtual ayuda a mantener el sistema global de
Python limpio y libre de paquetes innecesarios.
Desarrollo colaborativo:. Cuando trabajas con otros desarrolladores
en un proyecto, cada uno puede configurar su propio entorno virtual
para asegurarse de que todos estén utilizando las mismas versiones de
paquetes y evitar posibles problemas de incompatibilidad.

Academia-Ciberseguridad Python 78 / 123


Entornos virtuales en Python

Administracion y creación de entornos virtuales

Para crear y administrar entornos virtuales en Python, puedes utilizar he-


rramientas como venv (incluida en la biblioteca estándar de Python desde
la versión 3.3) o virtualenv. Con estas herramientas, puedes crear, activar,
desactivar y eliminar entornos virtuales fácilmente según tus necesidades de
desarrollo

Academia-Ciberseguridad Python 79 / 123


Entornos virtuales en Python

Pasos a seguir para trabajar en el entorno virtual

1.- Abrir Visual Studio Code

2.- Seleccionar la opcion ’terminal’ y posteriormente dar click en ”nueva


terminal”.

3.- Escribir dentro de la terminal de visual estudio:

virtualenv -p python3 env


Sı́ realizamos el proceso de forma correcta nos aparecerá que se ha creado
un entorno.

Academia-Ciberseguridad Python 80 / 123


Abrir documentos

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 81 / 123


Abrir documentos

Open

La función open permite abrir y editar archivos existentes.


Open
variable=open(“ruta/archivo.extensión”, ’r’)
print(variable.read())
variable.close()

Academia-Ciberseguridad Python 82 / 123


Abrir documentos

with open

Sirve para editar archivos


With open
with open(“archivo,txt”, “w”) as variable:
variable.write(”hola”)
variable.close()

Argumento Función
r leer
w Escribir
x Ejecutar
a agregar
+ Leer y escribir

Academia-Ciberseguridad Python 83 / 123


Conjuntos

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 84 / 123


Conjuntos

Python

Los conjuntos son una variables tipo set() que es muy útil para almacenar
datos in repetición
Set
variable=set() variable=1,2,3

Sin embargo, como en un conjunto noy hay orden para acceder a los ele-
mentos se debera hacer con un for

Academia-Ciberseguridad Python 85 / 123


Algoritmo

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 86 / 123


Algoritmo

Algoritmo

Un algoritmo es un conjunto de instrucciones finitas ordenadas para realizar


una acción o encontrar una solución. Caracterisitcas:
Inicio-fin finito
Exactitud-concreto
Secuencia-orden
Completo ver todos los posibles caminos
Abstractos y claros

Academia-Ciberseguridad Python 87 / 123


Algoritmo Tipos de algoritmos

De busqueda

Su objetivo es encontrar algún valor ya existente.


Por fuerza bruta. Se trata de agotar sistematicamente todos los
posibles resultados
Por comparación. Comparan dos listas

Academia-Ciberseguridad Python 88 / 123


Algoritmo Tipos de algoritmos

Estadisticos

Su objetivo es inferir algún parametro de la población o de la muestra


Montecarlo
Mı́nimos cuadrados

Academia-Ciberseguridad Python 89 / 123


Algoritmo Tipos de algoritmos

Ordenamiento

Ordenan valores con algúna regla especifica


Magnitud-o selección. Se orden de mayor a menor o viceversa
Burbuja. Revisa que el orden sea de una manera, de no ser ası́ al
algoritmo se detiene

Academia-Ciberseguridad Python 90 / 123


Algoritmo Tipos de algoritmos

Metodologı́a

Para hacer un algoritmo


Definir un problema
Analisis del problema
Entrada
Procesos
Salida

Academia-Ciberseguridad Python 91 / 123


Algoritmo Tipos de algoritmos

Ejercicio

Crear una función que pueda ir recorriendo los ejemplos en dos conjuntos.
a voluntad del usuario

Academia-Ciberseguridad Python 92 / 123


Algoritmo Tipos de algoritmos

Funciones Recursivas

Las funciones recursivas se llaman ası́ mismas, hasta que satisface cierta
condición, en ese sentido funcional como un while.
Ejemeplo.
def fibo(n):
if n¡2:
return(n)
return(fibo(n-2)+fibo(n-1))

Academia-Ciberseguridad Python 93 / 123


Paradoja de Russell

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 94 / 123


Paradoja de Russell

Paradoja de conjuntos. Las Clases

Una paradoja genera un contradicción: no puede existir un conjunto de to-


dos los conjuntos que no se contienen a sı́ mismos como elementos.

Paradoja del barbero


En mi pueblo soy el único barbero. No puedo afeitar al barbero de mi pueblo, ¡que soy yo!, ya que si lo hago, entonces puedo

afeitarme por mı́ mismo, por lo tanto ¡no deberı́a afeitarme! pues desobedecerı́a vuestra orden. Pero, si por el contrario no me

afeito, entonces algún barbero deberı́a afeitarme, ¡pero como yo soy el único barbero de allı́!, no puedo hacerlo y también ası́

desobedecerı́a a vos mi señor, oh emir de los creyentes, ¡que Allah os tenga en su gloria!

Academia-Ciberseguridad Python 95 / 123


Clases

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 96 / 123


Clases

Clases

Es un conjunto de intrucciones que definen metodos y atributos, se utiliza


para definir sustantivos o entidades. También se puede entender una clase
como un contructor de objetos que empaqueta datos y funcionalidad juntos.
class NombreClase:
declaraciones

Academia-Ciberseguridad Python 97 / 123


Clases

Ejemplos

El siguiente ejemplo muestra una clase que tiene dos atributos:


class MyClass:
x = 34
y = "hola"

Academia-Ciberseguridad Python 98 / 123


Clases

Ejemplo

El comando self hace referencia al objeto que se está llamando


class MyClass2:
i = 12345
def f(self):
print('hello world')

Academia-Ciberseguridad Python 99 / 123


Clases

Ejemplo

La función init cada que un objeto es creado, permite inializar los atri-
butos de un objeto
class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart

Academia-Ciberseguridad Python 100 / 123


Clases

Ejemplo

Como hemos visto que podemos agregar funciones dentro de las clases, pero tam-
bién se pueden crear primero las funciones y después madarlas a llamar:
Sin embargo, no se recomienda hacer eso, porque es muy confuso el pro-
grama.

Academia-Ciberseguridad Python 101 / 123


programación orientada a objetos

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 102 / 123


programación orientada a objetos

Programación orientada a objetos

La POO sirve para crear objetos, estos pueden ser cosas, personas, animales
etc. Imaginemos que tenemos la clase de los coches, tenemos un concepto
general, pero al ponerle una descripción, como el año, el color, la marca,
el motor, etc, creamos un objeto modificable. Eso es una clase, la clase del
Coche.

La clases son métodos o acciones que modifican un objeto.

Academia-Ciberseguridad Python 103 / 123


programación orientada a objetos

Cuatro caracteristicas

La POO tiene cuatro caracterı́sticas principales:


1 Encapsulación: Otorga privacidad de los datos, pues el código sólo es
accesible localmente.
2 Abstracción: Hace que una serie de pasos sean simples
3 Herencia: permite que una clase se derive de otra, es decir, de una
clase base se sigan subclases
4 Polimorfismo: varias formas

Academia-Ciberseguridad Python 104 / 123


programación orientada a objetos

Pasos a seguir

Cuando se trabaja con clases el proceso se divide en dos: definir una cla-
se y las instancias. En otras palabras, primero se debe definir la clase,
sus atributos y métodos. En el ejemplo anterior, la clase coche, los colores,
marcas... y después de deben crear muchos coches con los diferentes atri-
butos. Coches verdes, morados, azules; todos los objetos creados a partir de
la clase se llamaran instancias.

Academia-Ciberseguridad Python 105 / 123


programación orientada a objetos

Personalización

A pesar de que la clase es general para un objeto, se pueden personalizar


objetos. Esto también se puede ser en el sistema:
class Car:
pass
ford=Car()
print(ford)
chevy=Car()
#con hash sale el n\'umero en forma n\'umerica
print(hash(chevy)) #instancias
print(hash(ford))

Academia-Ciberseguridad Python 106 / 123


atributos

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 107 / 123


atributos

Atributos

Como observamos los objetos se guardan en diferentes partes de la memoria,


se guardan como cosas independientes. Cada instancia tiene atributos que lo
personalizan. Lo anterior, está dado por los atributos, los cuales son variables
adentro de la clase que almacenan la información personal. Los atributos
pueden ser cambiados con la sintaxis del punto.
class Car2():
sonido="Beep" #todos tiene este atributo
color="red" #atributos automaticos

ford =Car2()
print(ford.color) #sintasi del punto
Los atributos anteriores son por default

Academia-Ciberseguridad Python 108 / 123


atributos

Cambio de atributos

Los atributos pueden ser cambiados con la sintaxis del punto.


class Car3():
sound= "beep"
color= "red"
ford = Car3( )
print(ford.sound)
ford.sound="honk"
print(ford.sound)

Academia-Ciberseguridad Python 109 / 123


atributos

Método de initialization

Es un método que se usa para inicializar las instancias, se crean diversos


atributos, permite que se cambien los atributos fácilmente. Es llamado in-
mediatamente. Este método debe tener como primer argumento la palabra
clave self
class Car4( ):
def __init__(self, color):
self.color = color
ford = Car4("blue")
print(ford.color)

Academia-Ciberseguridad Python 110 / 123


atributos

Palabra clave self

Es una mención a la instancia vigente de la clase, es usada para acceder a


las variables y métodos asociados a la instancia. Es como una marca que le
dice a Python donde acceder. En los métodos, es el primer argumento en la
lista de parámetros. Ejemplo fútbol.

Academia-Ciberseguridad Python 111 / 123


atributos

initialization de multiples objetos

Obtenemos diferentes valores para cada uno de sus respectivos atributos


class Car5( ):
def __init__(self, color, year):
self.color = color
self.year = year
ford = Car5("blue", 2016)
subaru = Car5("red", 2018)
print(ford.color, ford.year)
print(subaru.color, subaru.year)

Academia-Ciberseguridad Python 112 / 123


atributos

Atribulos globales vs atributos de instancias

Los atributos globales pueden ser fuente de una clase directamente; mientras
que los atributos de instancias (creadas por el método init) sólo pueden ser
accedidas por las instancias de clases.
class Car6( ):
sound = "beep"
def __init__(self, color):
self.color = "blue"
print(Car6.sound)
#print(Car6.color)#type object 'Car6' has no attribute 'colo
ford = Car6("blue")
print(ford.sound, ford.color)

Academia-Ciberseguridad Python 113 / 123


metodos

Contenido
1 Introducción a python
Vectores
2 Tuplas
3 Diccionarios
4 Módulos
Modulo sys
Modulos
Modulo os
modulo glob
5 Entornos virtuales en Python
6 Abrir documentos
7 Conjuntos
8 Algoritmo
Tipos de algoritmos
9 Paradoja de Russell
10 Clases
11 programación orientada a objetos
12 atributos
13 metodos

Academia-Ciberseguridad Python 114 / 123


metodos

Métodos

Son esencialmente funciones que estan dentro de las clases. Sirven para
realizar acciones. Pensemos en el ejemplo de coche: acelerar, parar, girar...
Para acceder a a los métodos debes usar self, de lo contrario el método solo
puede ser accedido por la clase misma.
class Dog( ):
def makeSound(self):
print("bark")
sam = Dog( )
sam.makeSound( )

Academia-Ciberseguridad Python 115 / 123


metodos

Metodos Estaticos

Son accesibles sólo por la clase misma, No por las instancias


class Dog( ):
sound = "bark"
def makeSound(self):
print(self.sound)
def printInfo( ):
print("I am a dog.")

Dog.printInfo( )
#Dog.makeSound( )#error
sam = Dog( )
sam.makeSound( )
#sam.printInfo( ) #error

Academia-Ciberseguridad Python 116 / 123


metodos

Herencia

Es un concepto que permite a las clases tener una reusabilidad del código.
Las subclases heredan las instancias de la clase principal.
class Animal( ):
def makeSound(self):
print("roar")
class Dog(Animal):
species = "Canine"
sam = Dog( )
sam.makeSound( )#Accecible por herencia
lion = Animal( )
# lion.species#noaccecible, no funciona al rev\'es

Academia-Ciberseguridad Python 117 / 123


metodos

Tres cosas importantes a recordar

1 Los objetos tiene atributos que contienen el estado de los objetos


2 Los métodos controlan el acceso, cambio o vista de los estados del
objeto
3 Los objetos pueden extenderse usando una técnica llamada herencia

Academia-Ciberseguridad Python 118 / 123


metodos

Polimorfismo

Es la capacidad que tienen los objetos en diferentes clases para usar un


comportamiento o atributo del mismo nombre pero con diferente valor
class Auto( ):
rueda = 4
def desplazamiento(self):
print ('el auto se esta desplazando sobre 4 ruedas')
class Moto:
rueda = 2
def desplazamiento(self):
print('la moto se esta desplazando sobre 2 ruedas')

Academia-Ciberseguridad Python 119 / 123


metodos

Ejemplo Polimorfismo con función

class jitomate:
def tipo(self):
print ('vegetal')
def color(self):
print ('rojo')
class pera:
def tipo(self):
print ('fruta')
def color(self):
print ('verde')
def funcion (objeto):
objeto.tipo()
objeto.color()
nuevo_jitomate = jitomate()
nuevo_pera = pera()
funcion(nuevo_pera)
funcion(nuevo jitomate)

Academia-Ciberseguridad Python 120 / 123


metodos

Ejemplo Polimorfismo con método

class Alemania:
def Capital(self):
print ('Frankfurt')
def idioma(self):
print('Aleman')
class Mexico:
def Capital(self):
print('Tenochtitlan')
def idioma(self):
print('Espa~
nol/Nahuatl')
aleman = Alemania()
mexicano = Mexico()
for pais in (aleman,mexicano):
pais.Capital()
pais.idioma()

Academia-Ciberseguridad Python 121 / 123


metodos

Ejemplo Polimorfismo con herencia

class aves:
def volar(self):
print('La mayoria de las aves pueden volar pero algunas no')
class aguila(aves):
def volar(self):
print ('Las aguilas pueden volar')
class gallina(aves):
def volar(self):
print ('Las gallinas no pueden volar')
ob_ave = aves()
ob_aguila = aguila()
ob_gallina = gallina()
ob_ave.volar()
ob_aguila.volar()
ob_gallina.volar()

Academia-Ciberseguridad Python 122 / 123


metodos

Dudas y comentarios

Academia-Ciberseguridad Python 123 / 123

También podría gustarte