Primeros pasos#

  • Python es un lenguaje de programación de alto nivel, interpretado y de propósito general.

  • Fue creado por Guido van Rossum y lanzado por primera vez en 1991.

  • Es conocido por su sintaxis clara y su enfoque en la legibilidad del código, lo que lo hace ideal para principiantes y profesionales.

Entorno de trabajo#

Colab, o “Colaboratory”, te permite escribir y ejecutar código de Python en tu navegador, con:

  • Una configuración lista para que empieces a programar

  • Acceso gratuito a GPU

  • Facilidad para compartir

Seas estudiante, científico de datos o investigador de IA, Colab facilita tu trabajo.

Hola Mundo en python#

print("Hola Mundo!")

A fin de ejecutar el código en la celda anterior, haz clic en él para seleccionarlo y luego presiona el botón de reproducción ubicado a la izquierda del código o usa la combinación de teclas “Command/Ctrl + Intro”. Para editar el código, solo haz clic en la celda y comienza a editar.

# Escribe el código para imprimir un saludo personalizado con tu nombre...

¿Qué son variables?#

En Python, una variable es un contenedor para almacenar datos. Los tipos de datos básicos incluyen enteros (int), flotantes (float), cadenas (str) y booleanos (bool).

# Vamos a crear nuestra primer variable
x = 5
# Veamos ahora el contenido de la variable
print(x)
5
# ¿Cómo validar el tipo de variable que es?
type(x)
int

Tipos de variables#

Existen muchas formas de almacenar información en variables.

# Números enteros

a = 2
print(a)
2
# Números reales

b = 12.5
print(b)
12.5
# String (Cadena de caracteres)

# Veamos como declarar letras

letra = "A"
print(letra)
A
# Ahora texto más largo

nombre = "Andres"
print(nombre)
Andres
# Una frase completa
frase_completa = "Este es un ejemplo de frase muy larga"
print(frase_completa)
Este es un ejemplo de frase muy larga
# Texto con saltos de linea demasiado largos

bloque_texto = """ Este es un bloque de texto
que me permite escribir texto en varias lineas

y poder colocar bloques grandes de texto

- también se pueden colocar viñetas
- listado de elementos y muchas otras cosas

este texto tiene 9 líneas

"""

print(bloque_texto)
 Este es un bloque de texto
que me permite escribir texto en varias lineas 

y poder colocar bloques grandes de texto

- también se pueden colocar viñetas
- listado de elementos y muchas otras cosas

este texto tiene 9 líneas
# Booleanos

bandera = True
print(bandera)
True
# Booleanos 2

esEstudiante = False
print(esEstudiante)
False
# Booleanos

tieneCertificado = bool(1) # bool(0)
print(tieneCertificado)
print(type(tieneCertificado))
True
<class 'bool'>
# Listas

lista = [ 3, 2.8, 5, 'hola', True, [1,5,6] ]
print(lista)
print(type(lista))
[3, 2.8, 5, 'hola', True, [1, 5, 6]]
<class 'list'>

Imprimir texto dando formato a la salida#

Existen diferentes formas de imprimir el contenido de las variables en python y dar un formato específico a los que se quiere mostrar por pantalla

# 1. Usar varios comandos print
nombre = "Alvaro"
print("Hola, mi nombre es:")
print(nombre)
Hola, mi nombre es:
Alvaro
# 2. Utilizar comas (,) para separar el contenido
nombre = "Alvaro"
edad = 25
print("Hola, soy ",nombre,"y tengo ", edad, "años")
Hola, soy  Alvaro y tengo  25 años
# 3. Utilizar un formatted string
nombre = "Álvaro"
edad = 18
cargo = "Jefe de proyecto"
promedio = 4.5

cadena = f"El estudiante {nombre}, {cargo} tiene {edad} años y un promedio de {promedio} "
print(cadena)
El estudiante Álvaro, Jefe de proyecto tiene 18 años y un promedio de 4.5 

Ejercicio 1.#

Crea una variable llamada ‘edad’ y asígnale el valor de tu edad. Imprime el valor y el tipo de dato.

# Escribe tu solución acá.

Ejercicio 2.#

Imagina que estás desarrollando un programa para recopilar y analizar información personal básica de empleados de una institución pública. Este programa debe ser capaz de almacenar datos personales, verificar ciertos atributos y realizar algunas operaciones básicas con ellos. Los datos que necesitas recolectar incluyen la edad, la altura, el cargo de la persona y si la persona está actualmente estudiando.

Crea variables para almacenar la información de 3 colaboradores e imprimir la información de ellos.

# Escribe tu solución acá.

Operaciones Aritméticas#

Operador Descripción Uso
+ Realiza Adición entre los operandos 12 + 3 = 15
- Realiza Substracción entre los operandos 12 - 3 = 9
* Realiza Multiplicación entre los operandos 12 * 3 = 36
/ Realiza División entre los operandos 12 / 3 = 4
% Realiza un módulo entre los operandos 16 % 3 = 1
** Realiza la potencia de los operandos 12 ** 3 = 1728
// Realiza la división con resultado de número entero 18 // 5 = 3
# Suma y resta
print("Suma = ", 4+5)
print("Resta = ", 4-5)
Suma =  9
Resta =  -1
# Multiplicación y División

a = 10
b = 3

print("Multiplicación = ", a*b)
print("División = ", a/b)
print("División entera = ", a//b)
Multiplicación =  30
División =  3.3333333333333335
División entera =  3
c = a//b
print(c)

# Tipo de variable 'c'
print(type(c))
1
<class 'int'>
a = 6
b = 2
c = 2.
# Tipo de variable 'a'
print(type(a))

# Tipo de variable 'b'
print(type(b))

# Tipo de variable 'c'
print(type(c))
<class 'int'>
<class 'int'>
<class 'float'>
operacion_a = a/b

operacion_b = a/c

print(operacion_a)
# Tipo de dato 'operacion_a'
print(type(operacion_a))

print(operacion_b)
# Tipo de dato 'operacion_b'
print(type(operacion_b))
3.0
<class 'float'>
3.0
<class 'float'>
# Otras operaciones
print("Residuo = ", 10%3)
print("Potencia = ", 2**3)
print("Raiz = ", 2**0.5)
Residuo =  1
Potencia =  8
Raiz =  1.4142135623730951
# Funciones útiles para operaciones aritméticas
print("Redondear números= ",round(3.867483,3))
print("Valor Absoluto= ",abs(-4))
print("Convertir número a decimal= ",float('3.5'))
Redondear números=  3.867
Valor Absoluto=  4
Convertir número a decimal=  3.5

Casteo de variables#

El casteo de variables es el proceso de convertir una variable de un tipo a otro.

Este proceso permite transformar la información, modificarla y realizar operaciones entre variables.

# De cadena a entero
cadena = "123"
entero = int(cadena)
print(entero)  # Salida: 123
print(type(entero))  # Salida: <class 'int'>
123
<class 'int'>
# De entero a flotante
entero = 5
flotante = float(entero)
print(flotante)  # Salida: 5.0
print(type(flotante))  # Salida: <class 'float'>
5.0
<class 'float'>
# De flotante a cadena
flotante = 3.14
cadena = str(flotante)
print(cadena)  # Salida: '3.14'
print(type(cadena))  # Salida: <class 'str'>
3.14
<class 'str'>
# De entero a booleano
entero = 0
booleano = bool(entero)
print(booleano)  # Salida: False
print(type(booleano))  # Salida: <class 'bool'>
False
<class 'bool'>

Ejercicio#

Imagina que estás recopilando datos de una encuesta y necesitas asegurarte de que todos los valores numéricos se traten correctamente. Si los datos se ingresan como cadenas (por ejemplo, desde un formulario web), necesitarás convertir esos valores a enteros o flotantes para realizar cálculos.

# Datos de entrada como cadenas
edad_cadena = "30"
altura_cadena = "1.75"

# Tu código acá.

Operaciones lógicas y relacionales#

En programación, las operaciones lógicas son utilizadas para tomar decisiones basadas en condiciones. Estas operaciones devuelven valores booleanos (True o False). Python ofrece varios operadores lógicos que nos permiten realizar estas evaluaciones.

#m Menor que
5<6
True
a = 5
b = 5
a1 = 7
b1 = 3
c1 = 3
# Mayor que
e = a1 > b1
print(e)
True
# Menor que
f = b1 < a1
print(f)
True
# Mayor o igual que
g = b1 >= c1
print(g)
True
# Menor o igual que
h = b1 <= c1
print(h)
True
# Igual
'Hola' == 'Adios'
False
cadena1 = 'Adios'
cadena2 = 'Bye'

cadena0 = cadena1 != cadena2
print(cadena0)
True
# Diferente
1 != 0
True
True == False
False
num_1 = 2
num_2 = 5
num_3 = 2.0001
num_4 = 2
letra_E = 'E'
letra_e = 'e'
# Tipo de dato 'num_1'
print("Tipo de dato 'num_1':",type(num_1))

# Tipo de dato 'num_2'
print("Tipo de dato 'num_2':",type(num_2))

# Tipo de dato 'num_3'
print("Tipo de dato 'num_3':",type(num_3))

# Tipo de dato 'num_4'
print("Tipo de dato 'num_4':",type(num_4))

# Tipo de dato 'letra_E'
print("Tipo de dato 'letra_E': ",type(letra_E))

# Tipo de dato 'letra_e'
print("Tipo de dato 'letra_E':",type(letra_e))
Tipo de dato 'num_1': <class 'int'>
Tipo de dato 'num_2': <class 'int'>
Tipo de dato 'num_3': <class 'float'>
Tipo de dato 'num_4': <class 'int'>
Tipo de dato 'letra_E':  <class 'str'>
Tipo de dato 'letra_E': <class 'str'>
# 2 es mayor que 5?
print(num_1 > num_2)
False
# 2 es menor que 5?
print(num_1 < num_2)
True
# 2 es mayor o igual que 5?
print(num_1 >= num_2)
False
# 2 es menor o igual que 5?
print(num_1 <= num_2)

# 2 es menor o igual que 2?
print(num_1 <= num_4)
True
True
# 2 es igual a 2.0001?
print(num_1 == num_3)
False
# 2 es diferente a 2.0001?
print(num_1 != num_3)
True
# la letra 'E' es diferente a la letra 'e'?
print(letra_E != letra_e);

AND#

Este operador devuelve True si ambas condiciones son True.

resultado = (5 > 3) and (10 < 20)
print(resultado)
True

OR#

Este operador devuelve True si al menos una de las condiciones es True.

resultado = (5 > 3) or (10 > 20)
print(resultado)
True

NOT#

Este operador invierte el valor de una condición.

resultado = not (False)
print(resultado)
True
resultado = not (5 > 3)
print(resultado)
False

Ejemplo: Verificar la Edad y la Altura#

Imaginemos que estamos desarrollando un programa para verificar si una persona es mayor de edad y si su altura es mayor que la media (la altura media es 1.70).

# Datos de entrada
edad = 25
altura = 1.80
# Operaciones lógicas
es_mayor_de_edad = (edad >= 18)
es_alto = (altura > 1.70)

print(es_mayor_de_edad)
print(es_alto)
True
True
# Ahora validemos la condición que se pide
resultado = es_mayor_de_edad and es_alto
print(f"Es mayor de edad y alto: {resultado}")
Es mayor de edad y alto: True

Ejercicio: Verificar Edad o Altura#

  1. Ahora verifiquemos si una ersona es mayor de edad o si su altura es mayor al umbral establecido.

  2. ¿Cómo quedaría la validación si en lugar de validar si es mayor de edad, quiero valida que NO sea mayor de edad (menor de edad)?

# Tu código va acá
# Tu código va acá

Operadores de asignación#

Los operadores de asignación en Python se utilizan para asignar valores a las variables. Estos operadores combinan una operación matemática con la asignación, lo que permite escribir el código de manera más concisa y eficiente.

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
var3 = 2
var3 += 3
print(var3)
5
var3 = 2
var3 -= 10
print(var3)
-8
var3 = 2
var3 *= 2
print(var3)
4
var3 = 2
var3 **= 4
print(var3)
16
var3 = 2
var3 /= 2
print(var3)
1.0
var3 = 2
var3 //= 1.5
print(var3)
1.0
var3 = 2
var3 %= 1
print(var3)
0

Ejercicio:#

Crea un programa que realice las siguientes operaciones utilizando operadores de asignación:

  1. Asigna el valor inicial de 50 a una variable x.

  2. Suma 10 a x utilizando +=.

  3. Resta 5 a x utilizando -=.

  4. Multiplica x por 2 utilizando *=.

  5. Divide x entre 4 utilizando /=.

  6. Calcula el módulo de x con 3 utilizando %=.

  7. Eleva x al cuadrado utilizando **=.

  8. Realiza una división entera de x por 5 utilizando //=.

# Tu código va acá

Jerarquía de operadores#

La jerarquía de operaciones, también conocida como precedencia de operadores, determina el orden en que se evalúan las operaciones en una expresión. Conocer la jerarquía es crucial para escribir expresiones matemáticas y lógicas correctamente en Python.

Jerarquia

Paréntesis ( )

Exponente **

División (/) y Módulo (%)

Multiplicación (*)

Suma (+) y Resta (-)

Operadores Relacionales (>, <, >=, <=, ==, !=)

Negación (not)

Conjunción (and)

Disyunción inclusiva (or)

Operadores de Asignación

Para más información sobre prioridad de operadores en Python visite este enlace

print( 5 ** (2 * 3) + 3 )
15628
print( 5 % 2 * 3 + 3 )
6
print( 5 % (2 * 3) + 3 )
8
a = -5
b = 3
c = 2

print( a / b * a / c > b - a * c )
False
a = 10
b = 7
c = -1

print( a %  b + c * a > 3 or c * c < 5 )
True
# El operador and tiene mayor precedencia que or, por lo que se hace primero
resultado = True or False and False
print(resultado)
True
# Los operadores de asignación tienen la menor precedencia y se evalúan al final
a = 5
a += 3 * 2
print(a)
11

Entrada dinámica de datos en python#

Hasta aquí hemos visto como imprimir información desde el programa hacia los usuarios.

Sin embargo, una persona que quiera probar o hacer un programa debe entender sobre variables para, por ejemplo, hacer una calculadora, o un validador de edad. Pero en la vida real, lo que buscamos es que el usuario ingrese la información de manera dinámica, sin tener que saber programar.

Para esto, Python cuenta con la función input() para pedirle a un usuario externo que ingrese algunos datos y nosotros realizar las validaciones o procesos.

La función input() en Python se utiliza para recibir datos del usuario. Es una manera efectiva de hacer que tus programas sean interactivos, permitiendo a los usuarios ingresar información que luego puede ser utilizada por el programa.

# Sintaxis

variable = input("Mensaje al usuario: ")
print("El usuario dijo: ",variable)
Mensaje al usuario: Hola mundo desde el input
El usuario dijo:  Hola mundo desde el input
# Revisemos de qué tipo de datos es "variable"
print(type(variable))
<class 'str'>
variable = input("Ingresa ahora un número: ")
print("El usuario escribió: ",variable)
print(type(variable))
Ingresa ahora un número: 2
El usuario escribió:  2
<class 'str'>
# ¿Entonces cómo podemos leer número? si siempre es un string

# recuerda que puedes hacer un casteo
variable = input("Ingresa ahora un número: ")
VariableCasteada = int(variable)
print("El usuario escribió: ",VariableCasteada)
print(type(VariableCasteada))
Ingresa ahora un número: 3
El usuario escribió:  3
<class 'int'>

Ejercicio 0: Pedir edad#

Vamos a solicitar la edad de una persona por consola y vamos guardarla en una variable

# Tu código va acá

Ejercicio 1: Recibir y mostrar datos#

  1. Solicita al usuario que ingrese su nombre, edad y ciudad de residencia.

  2. Imprime un mensaje que combine todos estos datos en una sola oración.

# Tu código va acá

Ejercicio 2: Realizar operaciones matemáticas con datos ingresados por el usuario#

  1. Solicita al usuario que ingrese dos números.

  2. Convierte las entradas a enteros.

  3. Calcula e imprime la suma, resta, multiplicación y división de estos dos números.

# Tu código va acá

Formato para definir variables#

Definir nombres de variables de manera consistente y clara es una práctica esencial en la programación. Utilizar convenciones de nombres estándar no solo hace que tu código sea más legible y mantenible, sino que también facilita la colaboración con otros desarrolladores. En esta clase, exploraremos las diferentes convenciones de nombres y las mejores prácticas para definir variables en Python.

Convenciones de nombres#

  1. Snake Case (snake_case)

En snake_case, todas las letras son minúsculas y las palabras están separadas por guiones bajos (_).

numero_de_estudiantes = 30
nombre_del_profesor = "Carlos"
  1. Camel Case (camelCase)

En camelCase, la primera letra de la primera palabra es minúscula y la primera letra de cada palabra subsiguiente es mayúscula.

numeroDeEstudiantes = 30
nombreDelProfesor = "Carlos"

  1. Pascal Case (PascalCase)

En PascalCase, la primera letra de cada palabra es mayúscula.

NumeroDeEstudiantes = 30
NombreDelProfesor = "Carlos"

  1. Mayúsculas para Constantes

Las constantes, o variables que no deberían cambiar su valor, se escriben generalmente en mayúsculas con guiones bajos (_) entre las palabras.

PI = 3.14159
VELOCIDAD_DE_LUZ = 299792458

Seguir una convención de nombres hace que tu código sea más fácil de leer y entender, tanto para ti como para otros desarrolladores.

Ejercicio#

Contexto

Imagina que estás desarrollando un programa para una oficina gubernamental que necesita recopilar y analizar información básica de sus empleados. La información que necesitas incluir es la edad, la altura, si son estudiantes, y su salario. El programa debe verificar si los empleados cumplen ciertos criterios y proporcionar un resumen de la información.

Objetivos del Ejercicio

  1. Solicitar al usuario que ingrese su edad, altura, si es estudiante y su salario.

  2. Convertir las entradas a los tipos de datos adecuados.

  3. Verificar:

  • Si el empleado es mayor de edad.

  • Si su altura es mayor que la media (1.70 metros).

  • Si su salario es mayor o igual a un salario promedio (ej. $3000).

  • Si no es estudiante.

  1. Imprimir un resumen con toda la información y los resultados de las verificaciones.

# Tu código va acá

Reto 1: Factura Empresa de hamburguesas#

Contexto

Ud trabaja en un restaurante de hamburguesas en el que necesitan automatizar el proceso de impresión de la factura de cada uno de los clientes. Debes calcular los precios de impuestos y el costo total de cada orden.

Objetivo del ejercicio

Realice una impresión de una factura que muestre:

  • El precio individual de una hamburguesa (5 dolares)

  • El precio invididual de una gaseosa (2 dolares)

  • El precio del menú con hamburguesa, gaseosa y papas cuyo costo es de 10 dolares

  • El precio total sin IVA

  • El precio total con IVA del 8%

# Tu código va acá

Reto: Análisis de Información Financiera#

Contexto

Imagina que trabajas en el departamento financiero de una empresa y necesitas desarrollar un programa para analizar la información financiera básica de los empleados. Este programa debe recopilar datos como el salario mensual, los gastos mensuales, y calcular el ahorro mensual. Además, debe verificar si los empleados están ahorrando más del 20% de su salario y proporcionar un resumen financiero.

Objetivos del Ejercicio

1. Solicitar al usuario que ingrese su salario mensual y sus gastos mensuales.

2. Convertir las entradas a los tipos de datos adecuados.

3. Calcular el ahorro mensual y el porcentaje de ahorro sobre el salario.

4. Verificar si el porcentaje de ahorro es mayor al 20%.

5. Imprimir un resumen financiero con toda la información y los resultados de las verificaciones.

# Tu código va acá