Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ciencia de Datos
Módulo : Fundamentos de Programación en Python
Aprendizaje Esperado
Tipos de Datos
Python también define otros tipos de datos, entre los que se encuentran:
Tipos numéricos
Números enteros
Ejemplos:
>>> a = -1 # a es de tipo int y su valor es -1
>>> print(b)
>>> diez = 10
>>> print(diez)
10
>>> print(diez_binario)
10
>>> print(diez_octal)
10
>>> print(diez_hex)
10
Cuando un número float vaya a ser usado por una persona, en lugar de
por el computador, puedes darle formato al número de la siguiente
manera:
>>> print(real)
>>> print(f'{real:.2f}')
A = [1 2 3
4 5 6]
[-1 0
B = 0 1
1 1]
Números complejos
>>> complejo.real
1.0
>>> complejo.imag
2.0
>>> 1 + 2.0
3.0
Tipos booleano
Una particularidad del lenguaje es que cualquier objeto puede ser usado
en un contexto donde se requiera comprobar si algo es verdadero o falso.
Por tanto, cualquier objeto se puede usar en la condición de un if o
un while (son estructuras de control que veremos en tutoriales
posteriores) o como operando de una operación booleana.
● None
● False
● El valor cero de cualquier tipo numérico: 0, 0.0, 0j, …
● Secuencias y colecciones vacías (veremos estos tipos en otros
tutoriales): '', (), [], {}, set(), range(0)
>>> print(hola)
Hola "Pythonista"
>>> print(hola_2)
Hola 'Pythonista'
>>> print(hola_3)
Hola 'Pythonista'
>>> print(caracter_a)
a
Otros tipos
Hasta aquí hemos repasado los tipos de datos básicos de Python, sin
embargo, el lenguaje ofrece muchos tipos más.
Además de los tipos básicos, otros tipos fundamentales de Python son las
secuencias (list y tuple), los conjuntos (set) y los mapas (dict).
Todos ellos son tipos compuestos y se utilizan para agrupar juntos varios
valores.
>>> print(lista)
[1, 2, 3, 8, 9]
>>> print(tupla)
(1, 4, 8, 0, 5)
>>> print(conjunto)
{1, 3, 4}
>>> print(diccionario)
Operadores y expresiones
Operadores Aritméticos
Ejemplo:
>>> x = 7
>>> y = 2
>>> x + y # Suma
>>> x - y # Resta
>>> x * y # Producto
14
>>> x / y # División
3.5
>>> x % y # Resto
>>> x // y # Cociente
3
>>> x ** y # Potencia
49
Operadores Relacionales
12 == 3
Devuelve True si ambos operandos devuelve
== son iguales False
Operadores de Asignación
OPERADOR DESCRIPCIÓN
a = 5. 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
%= a %= 3 es equivalente a a = a % 3
a **= 3 es equivalente a a = a **
**= 3
|= a |= 3 es equivalente a a = a | 3
^= a ^= 3 es equivalente a a = a ^ 3
Operadores Lógicos
Operadores de Pertenencia
in devuelve
OPERADOR DESCRIPCIÓN
Ejemplo:
>>> 4 in lista
False
>>> 3 in lista
True
True
Operadores de Identidad
OPERADOR DESCRIPCIÓN
Ejemplo:
>>> x = 4
>>> y = 2
>>> x is lista
False
>>> x is y
False
>>> x is 4
True
Expresiones
>>> 4 * 3 - 2
10
>>> n / 7 + 5
>>> n = 17
>>> pi = 3.14159
>>> 17 = n
n → 17
pi → 3.1415
>>> print n
17
>>> print pi
3.14159
<type 'str'>
>>> type(n)
<type 'int'>
>>> type(pi)
<type 'float'>
>>> dia
'Jueves'
>>> dia
'Viernes'
>>> dia = 21
>>> dia
21
Usted notará que se ha combinado el valor del ”dia” en tres ocasiones, y
en la tercera asignación nosotros le dimos un valor que era de un tipo
diferente.
Hay algunas situaciones en las que los nombres que comienzan con un
guión tienen un significado especial, por lo que una regla segura para los
principiantes es empezar todos los nombres con una letra que no sea un
guión.
Si usted le da un nombre inválido a una variable obtendrá un error de
sintaxis:
Resulta que class es una de las palabras claves de Python. Las palabras
claves definen las reglas del lenguaje y su estructura, y no pueden ser
usadas como nombres de variables.
Conversiones de tipos
Conversión implícita
a = a + b
print(a) # 3.3
Sin embargo hay otros casos donde Python no es tan listo y no es capaz
de realizar la conversión. Si intentamos sumar un int a un string,
tendremos un error TypeError.
a = 1
b = "2.3"
c = a + b
Si te das cuenta, es lógico que esto sea así, ya que en este caso b era "2.3",
pero ¿y si fuera "Hola"? ¿Cómo se podría sumar eso? No tiene sentido.
Conversión explícita
Por otro lado, podemos hacer conversiones entre tipos o cast de manera
explícita haciendo uso de diferentes funciones que nos proporciona
Python. Las más usadas son las siguientes:
● float(), str(), int(), list(), set()
● Y algunas otras como hex(), oct() y bin()
Para convertir de float a int debemos usar float(). Pero mucho cuidado,
ya que el tipo entero no puede almacenar decimales, por lo que
perderemos lo que haya después de la coma.
a = 3.5
a = int(a)
print(a)
# Salida: 3
a = 3.5
a = str(a)
a = "35.5"
print(float(a))
# Salida: 35.5
a = "35,5"
print(float(a))
Y por último, resulta obvio pensar que el siguiente código dará un error
también.
a = "Python"
print(float(a))
a = 3
print(type(a)) # <class 'str'>
a = int(a)
print(type(a)) # <class 'int'>
a = int(a)
a = 10
a = str(a)
Convertir a list
Es también posible hacer un cast a lista, desde por ejemplo un set. Para
ello podemos usar list().
a = {1, 2, 3}
b = list(a)
a = ["Python", "Mola"]
b = set(a)
Entrada Estándar
38
print "====================="
print "\nSala de Chat > De 30 a 40 años"
print "------------------------------\n"
import sys
print sys.argv
python entrada_argumentos.py
['entrada_argumentos.py']
Al ejecutarlo puede ver que devuelve una lista con una cadena que
contiene el nombre del script. Entonces, el primer argumento de la
lista sys.argv (es decir, sys.argv[0]) es el propio nombre del script.
import sys
# argumentos realmente
if len(sys.argv) == 3:
texto = sys.argv[1]
repeticiones = int(sys.argv[2])
for r in range(repeticiones):
print texto
else:
Hola Plone
Hola Plone
Hola Plone
Salida Estándar
Sentencia print
Control de Flujo
Condicional
If – elif - else
if semaforo == verde:
else:
print "Esperar"
Si gasto hasta $100, pago con dinero en efectivo. Sino, si gasto más de
$100 pero menos de $300, pago con tarjeta de débito. Sino, pago con
tarjeta de crédito.
else:
print "Pago con tarjeta de crédito"
importe_a_pagar = total_compra
Iterativas
● El bucle while
● El bucle for
Bucle While
Este bucle, se encarga de ejecutar una misma acción “mientras que” una
determinada condición se cumpla:
Mientras que año sea menor o igual a 2012, imprimir la frase “Informes
del Año año”
anio = 2001
while True:
if nombre: break
El bucle anterior, incluye un condicional anidado que verifica si la variable
nombre es verdadera (sólo será verdadera si el usuario tipea un texto en
pantalla cuando el nombre le es solicitado). Si es verdadera, el bucle para
(break). Sino, seguirá ejecutándose hasta que el usuario ingrese un texto
en pantalla.
Bucle For
El bucle for, en Python, es aquel que nos permitirá iterar sobre una
variable compleja, del tipo lista o tupla:
for nombre in
print color
Por cada año en el rango 2001 a 2013, imprimir la frase “Informes del Año
año”
for anio in range(2001, 2013):
Funciones
Parámetros.
# condición
Los parámetros que una función espera, serán utilizados por ésta, dentro
de su algoritmo, a modo de variables de ámbito local. Es decir, que los
parámetros serán variables locales, a las cuáles sólo la función podrá
acceder:
print(nombre_completo)
print(nombre_completo)
print(nombre)
Función max()
Esta función toma dos o más números o cualquier tipo de iterable como
argumento. Mientras damos un iterable como argumento, debemos
asegurarnos de que todos los elementos del iterable sean del mismo tipo.
Esto significa que no podemos pasar una lista que tenga almacenados
valores enteros y de cadena. Sintaxis: max (iterable, * iterables [, clave,
predeterminado]) max (arg1, arg2, * args [, clave])
max(2, 3)
max([1, 2, 3])
max('a','b','c')
Ejemplo:
Esta función toma dos o más números o cualquier tipo de iterable como
argumento. Mientras damos un iterable como argumento, debemos
asegurarnos de que todos los elementos del iterable sean del mismo tipo.
Esto significa que no podemos pasar una lista que tenga almacenados
valores enteros y de cadena.
min(2, 3)
min([1, 2, 3])
min('a','b','c')
Ejemplo:
Ejemplo:
Ejemplo:
Función len()
Ejemplo:
Función Ord
Ejemplos:
ord('d')
100
ord('1')
49
Función chr
Ejemplo:
chr(49)
'1'
Hay que tener en cuenta que, si el valor entero pasado a chr() está fuera
del rango, entonces se generará un ValueError.
chr(-10)
chr(-1)
Función input
inp = input()
Para mostrar en la línea de comandos un mensaje:
promptwithmessage = input(’‘)
def multiplica_por_5(numero):
print(f'{numero} * 5 = {numero * 5}'
print('Comienzo del programa')
multiplica_por_5(7)
print('Siguiente')
multiplica_por_5(113)
print('Fin')
Sentencia return
if not numero % 2 == 0:
return
else:
print(numero ** 2)
cuadrado_de_par(8)
# 64
def es_par(numero):
if numero % 2 == 0:
return True
else:
return False
es_par(2)
# True
es_par(5)
# False
def cuadrado_y_cubo(numero):
cuad
# 16
cubo
# 64
def tabla_del(numero):
resultados = []
for i in range(11):
resultados.append(numero * i)
return resultados
res = tabla_del(3)
res
# [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Importación y llamado de módulos.
Ejemplo
def print_func(par):
print("Hola:" , par)
return
La declaración import
#!/usr/bin/python
import support
support.print_fun("Sara")
Hola Sara
La declaración from
Por ejemplo, para importar la función fibonacci del módulo fib, use la
siguiente declaración:
from fib import fibonacci
Búsqueda de módulos
1. El directorio actual.
La clase range.
list(range(5,10))
# [5, 6, 7, 8, 9]
list(range(0,10,3))
# [0, 3, 6, 9]
# Nunca se puede ir de 0 a 10 de -1 en -1
list(range(0,10,-1))
# []
print(i)
1
10
Veamos una comparación de una lista que almacena los números del 0 al
100.000 y un rango del 0 al 100.000
import sys
sys.getsizeof(lista)
# 800056
sys.getsizeof(rango)
# 48
r = range (0,30,3)
r[2]
# 6
r[-1]
# 27
13 in r
# False
12 in r
# True
r.index(18)
# 6
Creación de módulos
def print_name(n):
print('Hola', n)
Importar un módulos
import myname
name.print_name('Jorge')
print('Hola', n)
def print_name(n):
print('Hola', n)
if __name__ == '__main__':
import sys
print_name(sys.argv[1])
Hola Jorge
Expresiones Lambda
Sintaxis básica
Aplicaciones de Lambdas
def operar(v1,v2,fn):
return fn(v1,v2)
print(resultado1)
# 13
print(resultado2)
# 7
print(resultado2)
# 300
# 5.0
La función de orden superior operar es la que vimos en el concepto
anterior:
def operar(v1,v2,fn):
return fn(v1,v2)
print(resultado1)
x1 + x2
# 300
# 5.0
Referencias
https://www.youtube.com/watch?v=chPhlsHoEPo
https://j2logo.com/python/tutorial/tipo-str-python/
https://recursospython.com/pep8es.pdf
https://jarroba.com/curso-de-python-4-estructuras-de-control-de-flujo/
[5] Operadores de P
https://www.codigofuente.org/operadores-en-python/
[6] Funciones
https://devcode.la/tutoriales/funciones-en-python/
[7] Módulos
https://docs.python.org/es/3/tutorial/modules.html
[8] Expresiones lambda
https://j2logo.com/python/funciones-lambda-en-python/
https://www.youtube.com/watch?v=3lpG5knSjPA