# imprimir "Hola Mundo!"
print("Hola Mundo!");
Hola Mundo!
Aprender conceptos básicos de Python.
Francisco Alfaro
8 de julio de 2024
Python es un lenguaje de programación interpretado y de alto nivel. Fue creado por Guido van Rossum y lanzado por primera vez en 1991. Python se destaca por su legibilidad y sintaxis clara, lo que lo hace ideal tanto para principiantes como para programadores experimentados.
Una de las características más destacadas de Python es su filosofía de diseño, que enfatiza la legibilidad del código y la facilidad de uso. El lenguaje utiliza una sintaxis limpia y utiliza el espaciado en blanco de manera significativa para estructurar el código, lo que lo hace fácil de leer y entender.
🔑 Nota: Para profundizar en conceptos básicos de Python, se recomienda estudiar del curso Introducción a Python.
Hola mundo!
Escribamos nuestro primer programa de Python, “¡Hola, mundo!”. Es un programa simple que imprime Hello World! en el dispositivo de salida estándar (pantalla).
Variables
Las variables son contenedores que se utilizan para almacenar datos. Estos datos pueden ser números, cadenas de texto, listas, diccionarios, y más. En Python, no necesitas declarar el tipo de variable antes de asignarle un valor; el tipo de variable se determina automáticamente según el valor que se le asigne.
Además, las variables pueden contener una amplia variedad de tipos de datos, que determinan el tipo de valores que pueden almacenar y las operaciones que se pueden realizar con ellos.
# Variables numéricas
numero_entero = 10
numero_flotante = 3.14
# Variables de cadena de texto
nombre = "Juan"
mensaje = 'Hola, mundo!'
# Variables booleanas
verdadero = True
falso = False
# Variables nulas
mi_variable_nula = None
# Imprimiendo los valores de las variables
print("Valor de numero_entero:", numero_entero)
print("Valor de numero_flotante:", numero_flotante)
print("Valor de nombre:", nombre)
print("Valor de mensaje:", mensaje)
print("Valor de verdadero:", verdadero)
print("Valor de falso:", falso)
print("Valor de mi_variable_nula:", mi_variable_nula)
Valor de numero_entero: 10
Valor de numero_flotante: 3.14
Valor de nombre: Juan
Valor de mensaje: Hola, mundo!
Valor de verdadero: True
Valor de falso: False
Valor de mi_variable_nula: None
Puedes realizar una variedad de operaciones en diferentes tipos de datos. Estas operaciones pueden ser aritméticas, de comparación, lógicas, de asignación, de pertenencia e identidad. A continuación, se describen los principales tipos de operaciones:
Operaciones Aritméticas
Las operaciones aritméticas se utilizan para realizar cálculos matemáticos simples. Algunas de las operaciones aritméticas básicas incluyen:
# Operaciones Aritméticas
a = 10
b = 3
suma = a + b
resta = a - b
multiplicacion = a * b
division = a / b
potenciacion = a ** b
division_entera = a // b
modulo = a % b
print("Operaciones Aritméticas:")
print("Suma:", suma)
print("Resta:", resta)
print("Multiplicación:", multiplicacion)
print("División:", division)
print("Potenciación:", potenciacion)
print("División entera:", division_entera)
print("Módulo:", modulo)
Operaciones Aritméticas:
Suma: 13
Resta: 7
Multiplicación: 30
División: 3.3333333333333335
Potenciación: 1000
División entera: 3
Módulo: 1
Operaciones de Comparación
Las operaciones de comparación se utilizan para comparar valores y devolver un valor booleano (Verdadero o Falso). Algunas operaciones de comparación comunes son:
# Operaciones de Comparación
igualdad = (a == b)
desigualdad = (a != b)
mayor_que = (a > b)
menor_que = (a < b)
mayor_igual = (a >= b)
menor_igual = (a <= b)
print("Operaciones de Comparación:")
print("Igualdad:", igualdad)
print("Desigualdad:", desigualdad)
print("Mayor que:", mayor_que)
print("Menor que:", menor_que)
print("Mayor o igual que:", mayor_igual)
print("Menor o igual que:", menor_igual)
Operaciones de Comparación:
Igualdad: False
Desigualdad: True
Mayor que: True
Menor que: False
Mayor o igual que: True
Menor o igual que: False
Operaciones Lógicas
Las operaciones lógicas se utilizan para realizar operaciones booleanas en valores booleanos. Algunas operaciones lógicas comunes incluyen:
Operaciones Lógicas:
Y lógico: False
O lógico: True
Negación: False
Operaciones de Asignación
Las operaciones de asignación se utilizan para asignar valores a variables. Algunas operaciones de asignación pueden combinar operaciones aritméticas con la asignación. Por ejemplo:
Operaciones de Asignación:
Valor de x después de la asignación: 7
Operaciones con strings
Puedes realizar varias operaciones con cadenas de texto (strings) para manipular y trabajar con ellas de diversas formas. A continuación, se describen algunas operaciones comunes con ejemplos y resultados:
Concatenación: Hola mundo
Repetición: PythonPythonPython
Indexación: P
Longitud: 6
Los condicionales if
, elif
y else
son estructuras fundamentales en Python que te permiten ejecutar diferentes bloques de código dependiendo de ciertas condiciones. A continuación se explica cómo funcionan:
Estructura básica
La estructura básica de un condicional if
es la siguiente:
Si la condición es verdadera, se ejecuta el bloque de código indentado debajo de la declaración if
. Si la condición es falsa, este bloque de código se omite.
Condicional if-else
Puedes agregar un bloque else
para ejecutar un código alternativo cuando la condición en el if
es falsa:
Condicional if-elif-else
Si tienes múltiples condiciones, puedes usar la estructura elif
(abreviatura de “else if”) para verificarlas en secuencia:
Ejemplo
El bucle while
es una estructura de control que permite repetir un bloque de código mientras una condición especificada sea verdadera. A continuación se explica cómo funciona:
Estructura básica
La estructura básica de un bucle while
es la siguiente:
El bloque de código indentado debajo del while
se ejecutará repetidamente mientras la condición sea verdadera. Una vez que la condición se evalúa como falsa, la ejecución del bucle se detiene y el programa continúa con la siguiente instrucción después del bucle.
Ejemplo
For
con la Función Range()El ciclo for
se utiliza para iterar sobre una secuencia (como una lista, una tupla, un diccionario, etc.) y realizar una acción en cada elemento de la secuencia. La función range()
es comúnmente utilizada junto con un ciclo for
para generar una secuencia de números en un rango específico. A continuación se explica cómo funciona:
Estructura básica
La estructura básica de un ciclo for
con range()
es la siguiente:
La función range()
genera una secuencia de números que comienza desde el valor de “inicio” hasta el valor de “fin” (sin incluirlo), con un incremento definido por el valor de “paso”. El bloque de código indentado debajo del for
se ejecutará una vez para cada valor en la secuencia generada por range()
.
Ejemplo
Puedes controlar el flujo de ejecución de un ciclo for
o while
utilizando las palabras clave break
y continue
. Estas palabras clave te permiten detener la ejecución del ciclo de forma prematura o saltar a la siguiente iteración del ciclo, respectivamente. A continuación se explica cómo funcionan:
Salir de un Ciclo con break
La palabra clave break
se utiliza para salir de un ciclo de forma prematura si se cumple una cierta condición. Cuando se encuentra una instrucción break
, el ciclo se detiene inmediatamente y la ejecución del programa continúa con la primera instrucción después del ciclo.
Ejemplo
El valor del contador es: 1
El valor del contador es: 2
El valor del contador es: 3
El valor del contador es: 4
¡El contador llegó a 5! Saliendo del ciclo.
¡Ciclo completado!
Continuar con la Siguiente Iteración con continue
La palabra clave continue
se utiliza para saltar a la siguiente iteración del ciclo si se cumple una cierta condición. Cuando se encuentra una instrucción continue
, el ciclo se detiene temporalmente y se pasa a la siguiente iteración del ciclo, omitiendo cualquier código restante dentro del bloque de ciclo para esa iteración en particular.
Ejemplo
# Ejemplo de continuar con la siguiente iteración con continue
contador = 0
while contador < 5:
contador += 1
# Saltar a la siguiente iteración si el contador es par
if contador % 2 == 0:
print("El contador es par. Continuando con la siguiente iteración.")
continue
print("El valor del contador es:", contador)
print("¡Ciclo completado!")
El valor del contador es: 1
El contador es par. Continuando con la siguiente iteración.
El valor del contador es: 3
El contador es par. Continuando con la siguiente iteración.
El valor del contador es: 5
¡Ciclo completado!
Existen varias estructuras de datos integradas que te permiten almacenar y organizar colecciones de elementos de diferentes maneras. Algunas de las estructuras de datos más comunes son las listas, las tuplas, los conjuntos y los diccionarios. A continuación, se explican cada una de ellas con ejemplos y resultados impresos.
Una lista en Python es una colección ordenada y mutable de elementos. Puedes acceder a los elementos de una lista utilizando índices, y puedes modificar la lista agregando, eliminando o cambiando elementos.
Lista mixta: [1, 'dos', 3.0, True]
Primer elemento: a
Último elemento: e
Lista modificada: ['z', 'b', 'c', 'd', 'e']
Lista después de agregar un elemento: ['z', 'b', 'c', 'd', 'e', 'f']
Lista después de extenderla con otra lista: ['z', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
Lista después de insertar un nuevo elemento: ['z', 'b', 'nuevo', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
Lista después de eliminar un elemento: ['z', 'b', 'nuevo', 'd', 'e', 'f', 'g', 'h', 'i']
Último elemento eliminado: i
Lista después de eliminar el último elemento: ['z', 'b', 'nuevo', 'd', 'e', 'f', 'g', 'h']
Índice del elemento 'e': 4
Cantidad de veces que aparece 'a': 0
Lista después de revertir el orden: ['h', 'g', 'f', 'e', 'd', 'nuevo', 'b', 'z']
Lista de números ordenada: [1, 1, 2, 3, 3, 4, 5, 5, 6, 9]
Copia de la lista: ['h', 'g', 'f', 'e', 'd', 'nuevo', 'b', 'z']
Una tupla en Python es una colección ordenada e inmutable de elementos. Puedes acceder a los elementos de una tupla utilizando índices, pero no puedes modificar la tupla después de crearla.
Tupla mixta: (1, 'dos', 3.0, True)
Primer elemento: a
Último elemento: e
Rebanado: ('b', 'c')
Concatenación de tuplas: ('a', 'b', 'c', 'd', 'e', 'f', 'g')
Multiplicación de tupla: ('f', 'g', 'f', 'g', 'f', 'g')
Longitud de la tupla: 5
El elemento 'c' está en la tupla.
Cantidad de veces que aparece 'b': 1
Un conjunto en Python es una colección desordenada y mutable de elementos únicos. Puedes realizar operaciones de conjuntos como unión, intersección y diferencia entre conjuntos.
Conjunto vacío: set()
Conjunto: {1, 2, 3, 4, 5}
Conjunto después de agregar un elemento: {1, 2, 3, 4, 5, 6}
Conjunto después de eliminar un elemento: {1, 2, 4, 5, 6}
El elemento 4 está en el conjunto.
Unión de conjuntos: {1, 2, 3, 4, 5, 6, 7, 8}
Intersección de conjuntos: {4, 5}
Diferencia entre conjuntos 1 y 2: {1, 2, 3}
El conjunto 1 no es un subconjunto del conjunto 2.
Un diccionario en Python es una colección desordenada y mutable de pares clave-valor. Puedes acceder a los valores utilizando las claves, y puedes agregar, modificar o eliminar elementos del diccionario.
Diccionario vacío: {}
Diccionario: {'nombre': 'Juan', 'edad': 30, 'ciudad': 'Madrid'}
Nombre: Juan
Edad: 30
Diccionario después de modificar la edad: {'nombre': 'Juan', 'edad': 31, 'ciudad': 'Madrid'}
Diccionario después de agregar una profesión: {'nombre': 'Juan', 'edad': 31, 'ciudad': 'Madrid', 'profesión': 'Ingeniero'}
Diccionario después de eliminar la ciudad: {'nombre': 'Juan', 'edad': 31, 'profesión': 'Ingeniero'}
La clave 'nombre' está en el diccionario.
Claves del diccionario: dict_keys(['nombre', 'edad', 'profesión'])
Valores del diccionario: dict_values(['Juan', 31, 'Ingeniero'])
Pares clave-valor del diccionario: dict_items([('nombre', 'Juan'), ('edad', 31), ('profesión', 'Ingeniero')])
Copia del diccionario: {'nombre': 'Juan', 'edad': 31, 'profesión': 'Ingeniero'}
Una función es un bloque de código que realiza una tarea específica y puede ser llamado desde cualquier parte del programa. Las funciones pueden tener parámetros (datos que se pasan a la función) y pueden devolver un resultado. Al utilizar funciones, podemos dividir el código en partes más pequeñas y manejables, lo que facilita la comprensión y la depuración.
La sintaxis básica de una función en Python es la siguiente:
¡Hola!
¡Hola, Juan !
Resultado de la suma: 8
# Función con parámetros con valores predeterminados
def multiplicar(a, b=2):
return a * b
# Llamar a la función con un solo argumento
resultado1 = multiplicar(3)
print("Resultado de la multiplicación (con valor predeterminado):", resultado1)
# Llamar a la función con dos argumentos
resultado2 = multiplicar(3, 4)
print("Resultado de la multiplicación (con argumento específico):", resultado2)
Resultado de la multiplicación (con valor predeterminado): 6
Resultado de la multiplicación (con argumento específico): 12
# Función con un número variable de argumentos
def promedio(*args):
return sum(args) / len(args)
# Llamar a la función con diferentes cantidades de argumentos
resultado1 = promedio(2, 4, 6)
print("Promedio de 2, 4 y 6:", resultado1)
resultado2 = promedio(1, 3, 5, 7, 9)
print("Promedio de 1, 3, 5, 7 y 9:", resultado2)
Promedio de 2, 4 y 6: 4.0
Promedio de 1, 3, 5, 7 y 9: 5.0
Nombre: Ana
Edad: 25
Cociente: 3
Resto: 1
En Python, los errores se dividen principalmente en tres categorías: errores de sintaxis, excepciones y errores semánticos. Cada uno de estos tipos de errores tiene sus propias características y se manejan de manera diferente en el código.
Los errores de sintaxis en Python ocurren cuando el código no sigue las reglas gramaticales del lenguaje. Estos errores se detectan durante la fase de análisis del código y generalmente provocan que el intérprete de Python detenga la ejecución del programa y muestre un mensaje de error que indica la ubicación y la naturaleza del error. Aquí hay una lista de algunos errores de sintaxis comunes y ejemplos de cómo corregirlos:
Falta de paréntesis, corchetes o llaves
Cell In[73], line 2 print("Hola mundo" ^ SyntaxError: unexpected EOF while parsing
Falta de comillas
Cell In[74], line 2 mensaje = "Hola mundo ^ SyntaxError: EOL while scanning string literal
Falta de dos puntos
Cell In[75], line 2 if True ^ SyntaxError: invalid syntax
Indentación incorrecta
Cell In[76], line 3 print("Es verdadero") ^ IndentationError: expected an indented block
Uso incorrecto de palabras clave
Las excepciones en Python son eventos que ocurren durante la ejecución del programa y pueden alterar el flujo normal de ejecución. Cuando una excepción se produce, Python detiene la ejecución del programa y busca un bloque de código que pueda manejar la excepción. Aquí se presentan algunos tipos comunes de excepciones en Python y cómo manejarlos:
Excepción de tipo SyntaxError
Cell In[78], line 2 print("Hola mundo" ^ SyntaxError: unexpected EOF while parsing
Excepción de tipo NameError
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[79], line 2 1 # Error de nombre: Variable no definida ----> 2 print(variable_no_definida) NameError: name 'variable_no_definida' is not defined
Excepción de tipo TypeError
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[80], line 2 1 # Error de tipo: Suma entre tipos incompatibles ----> 2 resultado = 10 + "20" TypeError: unsupported operand type(s) for +: 'int' and 'str'
Excepción de tipo ValueError
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[81], line 3 1 # Error de valor: Argumento fuera de rango 2 import math ----> 3 raiz_negativa = math.sqrt(-9) ValueError: math domain error
Excepción de tipo ZeroDivisionError
--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) Cell In[82], line 2 1 # Error de división por cero ----> 2 division = 10 / 0 ZeroDivisionError: division by zero
Excepción de tipo OverflowError
--------------------------------------------------------------------------- OverflowError Traceback (most recent call last) Cell In[83], line 2 1 # Error de desbordamiento: Número demasiado grande para ser representado ----> 2 numero_grande = 20.0 ** 20.0 ** 20.0 OverflowError: (34, 'Result too large')
Manejo de Excepciones
Los errores semánticos en Python son más difíciles de detectar que los errores de sintaxis o las excepciones porque el código puede ejecutarse sin generar mensajes de error, pero produce resultados inesperados o incorrectos debido a una lógica incorrecta en el programa. Aquí se presentan algunos ejemplos de errores semánticos comunes en Python:
Operaciones incorrectas
--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) Cell In[85], line 2 1 # Error semántico: Operación incorrecta ----> 2 resultado = 10 / 0 # División por cero ZeroDivisionError: division by zero
Lógica incorrecta
--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) Cell In[86], line 11 9 # Llamar a la función con una lista vacía 10 valores = [] ---> 11 promedio = calcular_promedio(valores) 12 print("El promedio es:", promedio) Cell In[86], line 6, in calcular_promedio(valores) 4 for valor in valores: 5 suma += valor ----> 6 promedio = suma / len(valores) 7 return promedio ZeroDivisionError: division by zero
En este caso, si la lista valores
está vacía, se generará un error al intentar dividir por cero, lo cual es un error semántico en el contexto del programa.
Uso incorrecto de estructuras de datos
--------------------------------------------------------------------------- IndexError Traceback (most recent call last) Cell In[87], line 3 1 # Error semántico: Uso incorrecto de una lista 2 numeros = [1, 2, 3, 4, 5] ----> 3 ultimo_numero = numeros[10] # Acceso a un índice fuera de rango IndexError: list index out of range
Valores incorrectos
Lógica de negocio incorrecta
Cómo Identificar Errores Semánticos
Los errores semánticos generalmente se detectan cuando el programa produce resultados inesperados o incorrectos. Para identificar y corregir estos errores, es importante comprender la lógica del programa y revisar cuidadosamente el código en busca de posibles problemas. La depuración paso a paso y las pruebas exhaustivas del programa pueden ayudar a identificar y corregir los errores semánticos de manera efectiva.