PROGRAMACIÓN
GEOESPACIAL:
HERRAMIENTAS
PARA LA INNOVACIÓN
Especialización en Gestión de
Geoinformación con mención
en Proyectos de Ingeniería

SEMANA 3

Unidad 2: Fundamentos de Python

Profesor: MSc. Santiago Quiñones

Docente Investigador

Departamento de Ingeniería Civil

Contenidos

2.3 Funciones

Funciones en Python

Una función es un bloque de código reutilizable que permite estructurar mejor los programas, haciéndolos más organizados y fáciles de mantener. Una función realiza una tarea específica y puede ser utilizada varias veces sin necesidad de reescribir el código.

Anatomía de una función

Las funciones en Python comienzan con la palabra clave def, seguida del nombre de la función y los parámetros entre paréntesis.

T_F = T_C \times \frac{9}{5} + 32
def celsius_a_fahrenheit(temp_celsius):
  return 9/5 * temp_celsius + 32

Anatomía de una función

Las funciones en Python comienzan con la palabra clave def, seguida del nombre de la función y los parámetros entre paréntesis.

palabra clave def

nombre de la función

parámetros

declaración return

valor de retorno

def celsius_a_fahrenheit(temp_celsius):
  return 9/5 * temp_celsius + 32

Llamando una función

Para ejecutar una función, simplemente la llamamos por su nombre y proporcionamos los valores necesarios para los parámetros.

print(celsius_a_fahrenheit(0))
32

Funciones dentro de funciones

Una función puede llamar a otra función para realizar cálculos más complejos. Por ejemplo, convertir Kelvin a Fahrenheit utilizando conversiones intermedias.

def celsius_a_fahrenheit(temp_celsius):
  return 9/5 * temp_celsius + 32

def kelvins_a_celsius(temp_kelvins):
	return temp_kelvins - 273.15

def kelvins_a_fahrenheit(temp_kelvins):
	temp_celsius = kelvins_a_celsius(temp_kelvins)
	return celsius_a_fahrenheit(temp_celsius)
 
print(kelvins_a_fahrenheit(500))
T_F = T_C \times \frac{9}{5} + 32
T_C = T_K - 273.15

Funciones dentro de funciones

Conversión de temperaturas, ejecución paso a paso

Parámetros y valores de retorno

Algunas funciones solo ejecutan acciones sin devolver valores, como imprimir un mensaje.

Funciones sin valor de retorno

def saludar(nombre):
	print(f"Hola, {nombre}!")

saludar("Carlos")
Hola, Carlos!

Parámetros y valores de retorno

Las funciones pueden aceptar varios parámetros para realizar operaciones más complejas.

Funciones con múltiples parámetros

def multiplicar(a, b):
	return a * b

print(multiplicar(4, 5))
20

Parámetros y valores de retorno

Podemos definir parámetros con valores predeterminados.

Parámetros requeridos y opcionales

def potencia(base, exponente=2):
	return base ** exponente

print(potencia(3))
print(potencia(3, 3))
9
27

Parámetros y valores de retorno

Las funciones pueden retornar varios valores empaquetados en una tupla.

Funciones con múltiples valores de retorno

def operaciones(a, b):
	suma = a + b
	resta = a - b
	return suma, resta

resultado = operaciones(10, 4)
print(resultado)
(14, 6)

Uso de inteligencia artificial en la programación

Los modelos de inteligencia artificial, como ChatGPT, pueden generar código en Python basado en instrucciones proporcionadas por el usuario. Estos modelos pueden ser útiles para generar funciones, entender conceptos y acelerar el desarrollo, aunque deben usarse con precaución.

Uso de inteligencia artificial en la programación

Como puede observar, la figura muestra un ejemplo de solicitud de generación de código en ChatGPT. A continuación obtendremos el resultado:

# Solicitud al modelo:
# "Escribe una función en Python que sume dos números"

def sumar(a, b):
	return a + b

print(sumar(5, 7))
12

Consideraciones sobre el uso de IA

Aunque los modelos de IA pueden ser útiles para generar código, es importante revisar los resultados y comprender su funcionamiento. Además, los modelos pueden generar respuestas incorrectas o inseguras si no se formulan las preguntas adecuadas.

# Solicitud al modelo:
# "Escribe una función en Python que sume dos números"

def sumar(a, b):
	return a + b

print(sumar(5, 7))
12

2.4 Colecciones de datos

Colecciones de datos

Las colecciones de datos en Python permiten almacenar y manipular múltiples valores de manera eficiente. Las principales estructuras de colección en Python son:

Listas en Python

Las listas son estructuras de datos que pueden contener múltiples valores en un orden específico. Son mutables, lo que significa que sus elementos pueden modificarse después de su creación.

Creación de listas

valores = [10, 20, 30, 40]

Sintaxis

Listas en Python

Acceder a los elementos de una lista

print(valores[0]) # Accede al primer elemento
print(valores[2]) # Accede al tercer elemento
print(valores[3]) # Accede al último elemento

# Salida
10
30
40

Listas en Python

Acceder a elementos con índices negativos

print(valores[-1]) # Accede al último elemento
print(valores[-2]) # Accede al penúltimo elemento


# Salida
40
30

-1

-2

-3

-4

Listas en Python

Acceder a un rango de elementos

# Elementos desde la posición 1 hasta 2 (sin incluir 3)
print(valores[1:3]) 

Se puede seleccionar un subconjunto de elementos de una lista usando rebanado (slicing).

nombre_lista [   inicio   :   final   ]

                             inclusivo      exclusivo

Listas en Python

Modificar elementos en una lista

valores[2] = 35 # Modifica el tercer elemento

índice del elemento a modificar

nuevo valor

Listas en Python

Agregar elementos a la lista

valores.append(50) # Agrega un nuevo valor al final

Listas en Python

Eliminar elementos en una lista

del valores[1] # Elimina el segundo elemento

Tuplas en Python

Las tuplas son similares a las listas, pero su principal diferencia es que son inmutables, lo que significa que no pueden modificarse después de su creación.

Creación de una tupla

coordenadas = (3.5, 5.7)

Sintaxis

Tuplas en Python

Acceder a elementos en una tupla

print(coordenadas[0]) # Devuelve el primer valor

Es posible igual acceder a rangos de elementos tal como en las listas. 

Diccionarios en Python

Los diccionarios almacenan datos en pares clave-valor y permiten un acceso rápido a la información.

Creación de un diccionario

estudiante = {"nombre": "Carlos", "edad": 22, "curso": "Python"}

Sintaxis

Diccionarios en Python

Acceder a valores en un diccionario

print(estudiante["nombre"]) # Devuelve "Carlos"

Diccionarios en Python

Modifica valores en un diccionario

estudiante["edad"] = 23 # Modifica la edad

Estructuras repetitivas

Implementación en Python - Estructura for

for variable in iterable:
    # Código a ejecutar en cada iteración
    

Sintaxis

Nombre que se da al elemento actual en cada iteración

cualquier objeto iterable (lista, tupla, diccionario, cadena)

El for es otro bloque de código, se debe agregar los dos puntos y utilizar identaciones para las acciones.  

Estructuras repetitiva for

Ejemplo con una lista

ciudades = ["Madrid", "París", "Londres", "Berlín"]
for ciudad in ciudades:
	print(ciudad)

objeto iterable

variable

Estructuras repetitiva for

Iteración usando índices 

animales = ["Perro", "Gato", "Elefante"]
for i in range(len(animales)):
	print(f"{animales[i]} está en el índice {i}")

Podemos recorrer una lista utilizando índices con la función range() y len(). Esto es útil cuando se necesita manipular los elementos de la lista dentro del bucle.

Ejemplo con lista de animales

¿Tienes más preguntas sobre la temática?

Seleccione el componente Programación Geoespacial

 

y consulta lo que quieras saber.