Aprende los fundamentos de Python: variables, operadores, tipos de datos, funciones, estructuras de control, listas, diccionarios y más.
Aprendiendo python: fundamentos
Desarrollado por: Ing. Remigio Hurtado Ortiz, PhD. Correo de contacto: [email protected]
En esta práctica, aprenderás los fundamentos de Python de tal manera que puedas crear tus propias funciones. En las prácticas más avanzadas, podrás diseñar tus propios métodos de Machine Learning.
Requisitos: es importante tener conocimientos de Programación.
Esta práctica está estructurada de la siguiente manera:
Variables
3*2
6
mensaje = "Hola"
n = 15
pi = 3.141516
a= True
b=4+5j
print(mensaje)
print(n)
print("hola")
type(pi)
Hola 15 hola
float
Operadores
Operador suma (o adición)¶
suma = 5 + 7
sumaFlotante = 5.2 + 7.41
total = suma + sumaFlotante
print(suma)
print(sumaFlotante)
print(total)
12 12.61 24.61
Operador exponente¶
4 ** 3
64
6 % 2 # == 0 es par
0
5 % 2 # == 1 es impar
1
Operador División¶
5 / 2 # == 2
2.5
5 / 2.0 # == 2
2.5
Operador Divisón Entera¶
5 // 2
2
5 // 2.0
2.0
5 // 3.33
1.0
Operadores lógicos¶
not True
False
True or True
True
True or False
True
True and True
True
True and False
False
True and True and True and True and True
True
not (True and False)
True
Tipos de datos
Enteros (int y long)¶
a = 5
#Tipo de dato identificado automáticamente por Python. No es necesario declarar el tipo
type(a)
int
Decimales (float)¶
a = 2.3
type(a)
float
Números complejos¶
a = 2.1 + 7.8j
type(a)
complex
Booleandos (Boolean)¶
a = True
type(a)
bool
Cadenas (String)¶
cadena = 'hola, mi nombre es Pedro y estamos en Programación'
print(cadena)
hola, mi nombre es Pedro y estamos en Programación
type(cadena)
str
cadena = "hola, mi nombre es Pedro y estamos en Programación"
print(cadena)
hola, mi nombre es Pedro y estamos en Programación
cadena = "hola, \nMi nombre es Pedro y estamos en: \t Programación"
print(cadena)
hola, Mi nombre es Pedro y estamos en: Programación
cadena = """hola,
Mi nombre es Pedro y estamos en: \t Programación"""
print(cadena)
hola, Mi nombre es Pedro y estamos en: Programación
Las cadenas también admiten operadores como la suma (concatenación de cadenas) y la multiplicación¶
a = "uno"; b = "dos"
c = a + b
print(c)
unodos
c = a * 3 # c es "unounouno"
print(c)
unounouno
Listas y diccionarios
Una lista es un conjunto de elementos de cualquier tipo. Una lista es dinámica (mutable). Una tupla es un conjunto ordenado e inmutable de elementos.
# Obtener la palabra hola de la lista jerárquica
lst = ['a','b',[4,10,11],['c',[1,66,['hola']],2,111],'e',7]
lst[3][1][2]
['hola']
Un diccionario es un tipo de estructura de datos que permite guardar un conjunto no ordenado de pares clave-valor, siendo las claves únicas dentro de un mismo diccionario (es decir que no pueden existir dos elementos con una misma clave).
# Obtener la palabra mundial del diccionario jerárquico
d = {'k1':['val1','val2','val3',{'nosotros':['tenemos','que','ir',{'al':[1,2,3,'mundial']}]}]}
d['k1'][3]['nosotros'][3]['al'][3]
'mundial'
Algunas funciones internas
# Dividir la cadena s en palabras
s = "Python es el lenguaje de preferencia de las ingenierías!"
s=s.split()
print(s)
['Python', 'es', 'el', 'lenguaje', 'de', 'preferencia', 'de', 'las', 'ingenierías!']
# Dar formato a una cadena con algunas variables
monte= "Monte Everest"
altura = 8848
print("La altura del {m} es {a} metros.".format( m=monte, a=altura ))
La altura del Monte Everest es 8848 metros.
# Obtener el nombre de dominio de la dirección de correo
def obtenerDominio(s):
return s[s.find('@')+1:]
#return mail.?()[-1]
obtenerDominio('[email protected]')
'domain.com'
# Crear una función que devuelva True si la palabra internet se encuentra en la cadena
def buscarInternet(s):
return 'redes' in s.lower().split()
buscarInternet('Internet es un conjunto descentralizado de redes de comunicaciones interconectada')
True
# Crear una función para contar el número de veces que una palabra ocurre en una cadena
def contarPalabra(st):
count=st.count("IoT")
return count
contarPalabra('¡No sé cómo se escribe IoT! ¿Es IoT o iot? ¿Qué significa iot de todos modos?')
2
# Usar la función len para obtener la cantidad de elementos en una lista
lista=[1,3,7,21,10]
len(lista)
5
# Usar la función sort para ordenar una lista
lista=[3,4,7,2]
lista.sort() # por defecto orden ascendente
print(lista)
lista.sort(reverse=True) # para cambiar a orden descendente
print(lista)
[2, 3, 4, 7] [7, 4, 3, 2]
help(lista.sort)
Help on built-in function sort: sort(*, key=None, reverse=False) method of builtins.list instance Sort the list in ascending order and return None. The sort is in-place (i.e. the list itself is modified) and stable (i.e. the order of two equal elements is maintained). If a key function is given, apply it once to each list item and sort them, ascending or descending, according to their function values. The reverse flag can be set to sort in descending order.
# Filtrar las palabras que empiezan con d utilizando expresiones lambda y la función filter
seq = ['datos','internet','dado','protocolo', 'driver']
listaFiltrada = list(filter(lambda k: 'd' in k ,seq))
print(listaFiltrada)
['datos', 'dado', 'driver']
# Usar expresiones lambda y la función map para convertir una lista de palabras a mayúsculas
seq = ['datos','internet','dado','protocolo', 'driver']
list(map(lambda x:x.upper(),seq))
['DATOS', 'INTERNET', 'DADO', 'PROTOCOLO', 'DRIVER']
# La función zip (lista1, lista2) devuelve una lista de tuplas, donde la tupla i-ésima contiene el elemento i-ésimo de cada
# una de las listas de argumentos
pisos = ['Estacionamiento', 'Tiendas', 'Patio de comidas', 'Oficinas']
pisos_numeros = range(-1,3)
lista = list(zip(pisos,pisos_numeros))
print(lista)
[('Estacionamiento', -1), ('Tiendas', 0), ('Patio de comidas', 1), ('Oficinas', 2)]
# Usar la función zip para crear un diccionario. La clave es el número de piso y el valor es el tipo de piso
pisos = ['Estacionamiento', 'Tiendas', 'Patio de comidas', 'Oficinas']
pisos_numeros = range(-1,3)
diccionario = dict(zip(pisos_numeros,pisos))
print(diccionario)
print(diccionario[-1])
{-1: 'Estacionamiento', 0: 'Tiendas', 1: 'Patio de comidas', 2: 'Oficinas'} Estacionamiento
Estructuras de control
# Estructura condicional if
cadena="hola"
a=18.24
c=a**2
print(c)
type(cadena)
if a<6:
print("es menor a 6")
elif a<10:
print("es menor a 10")
else:
print("es mayor")
# Estructura iterativa for
for i in range(1,12,2):
print(i)
1 3 5 7 9 11
# Estructura iterativa while
lim=10
i=0
while i<=lim:
print(i)
i=i+1
Conclusiones
En este documento has aprendido los fundamentos de python para que puedas iniciar tus proyectos con este lenguaje tan interesante y sencillo de aprender. La idea es que rápidamente puedas dar solución a problemas y que no te estanques en una curva larga de aprendizaje sobre el lenguaje.
Referencias y enlaces
[1] Lee, K. D. (2011). Python programming fundamentals. London: Springer.
[2] Thanaki, J. (2017). Python natural language processing. Packt Publishing Ltd.
Enlaces de documentación de expresiones en Python: