Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 25

Universidad Autónoma de Baja California Apuntes

Facultad de Ciencias Químicas e Ingeniería Unidad 1

Unidad I. Fundamentos de la programación .


Competencia: Implementar programas computacionales, para la solución de problemas
básicos, usando los elementos del lenguaje de programación con actitud honesta, creativa y
propositiva.

1.1. Introducción al Lenguaje de Programación.

Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas, que definen una forma
codificada de realizar programas. Un programa es un conjunto de instrucciones que le indican que
acciones debe ejecutar una computadora. Los lenguajes de programación nos ayudan a hacer mas fácil
la tarea de especificarle a la computadora que acciones debe realizar.

La evolución de los lenguajes de programación ah servido para hacerle mas fácil la vida al
programador, para que en menor tiempo y con menor esfuerzo pueda llevar a cabo tareas complejas en
sus programas que codifica.

Existen diferentes tipos de lenguajes de programación y estos se pueden categorizar de diferente


forma. A continuación solo se mencionan algunos.

Lenguajes de Bajo Nivel.


Son los lenguajes que se acercan mas al lenguaje nativo de la computadora, por ejemplo el lenguaje
maquina y el lenguaje ensamblador.

Lenguajes de Alto Nivel.


Son aquellos lenguajes que se acercan mas al lenguaje nativo del programador, como por ejemplo
Lenguaje C, C++, Java, Python.

Lenguajes Compilados.
Son aquellos donde el programador escribe el programa en un cierto lenguaje en un archivo de texto
llamado código fuente y este tiene que ser convertido a un archivo ejecutable, que contiene
instrucciones en lenguaje maquina que la computadora puede entender, por una entidad llamada
compilador. Como por ejemplo el Lenguaje C/C++.

Lenguajes Interpretados.
Son aquellos en donde existe un programa ejecutándose en el sistema operativo llamado interprete
quien se encarga de ejecutar directamente las lineas de código que pueden ser introducidas a este o
quien puede ejecutar un archivo de código de dicho lenguaje. En este caso el programador realiza su
codigo en un archivo de texto y este es directamente interpretado por el programa antes mencionado, y
la computadora realiza las ordenes del archivo de texto. Este archivo de texto que contiene el código
generalmente se conoce como script. Python es un lenguaje interpretado y es el lenguaje que usaremos
en el curso.

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

1.1.1. El entorno de trabajo y estructura base de un programa.

Un IDE es un Integrated Desktop Enviroment, en un entorno de desarrollo integrado, es decir, es un


conjunto de herramientas unificadas en un solo programa, que nos facilitan la programación.

El cual surge ante la necesidad de tener en un solo programa todas las utilerias necesarias para el
desarrollo de software.

Durante el curso vamos a utilizar el lenguaje de programación de Python, para realizar nuestros
programas y utilizaremos el ambiente de desarrollo Spyder que viene incluido en la plataforma de
anaconda.

Un programa de python puede ser tan simple como una sola linea de código.
print(“Hola Mundo”)

Por lo general y a grandes rasgos un programa de Python se estructura de la siguiente manera:

"""
Un comentario con la descripción de lo que hace el programación
Esto es un comentario de múltiples lineas
Esto es ignorado por el interprete de Python
"""

#Declaración de módulos que se van a utilizar en el script


import random
import datetime
import sys
import math

#Definicion de variables globales o estructuras globales


cadena =""
acum = 0
MAXNUM = 55154
MINUM = 12530
lista = ["Juan","Karla","Claudia"]

#La definicion de funciones realizadas por el programador


def mifuncion1():
print("Esta es mi primer funcion")
return

def mifuncion2():
print("Esta es mi segunda funcion")
return
Programación y Métodos Numéricos Marco Cabrera Ver. 0.1
Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

#Definicion del programa principal o la funcion principal

def main():
print("Aqui esta todo el codigo de lo que hace el programa")
#mandar llamar las funciones
mifuncion1()
mifuncion2()
return
if __name__ == '__main__':
main()

El código anterior representa básicamente una estructura común de un programa estructurado en el


lenguaje de programación de python.

1.1.2. Tipos de datos.


Son el formato y el contexto con el cual se leen, se almacenan y se opera con todos los valores
numéricos que utilizamos en nuestros programas. Un tipo de dato define los limites de los valores que
se pueden aceptar y también define las operaciones que se pueden realizar sobre estos. Un tipo de dato
es una entidad que define un valor en un determinado contexto operacional.

Tipos de datos básicos en Python:

Boolean: Tipo de dato que define los valores que se utilizan para realizar operaciones lógicas. Los
valores booleanos son dos unicamente, True(Verdadero) y False(Falso).

Int: Tipo de dato que define valores enteros positivos y negativos. Dependiendo de la plataforma este
valor pude ser de cierta cantidad de bytes y el rango estará definido por el tamaño en bytes del entero
que si por ejemplo es de 32 bits el rango sera aproximadamente de -2 mil millones a 2 mil millones.

Float: Tipo de dato que define valores positivos y negativos con punto decimal, como por ejemplo el
famoso valor de pi, 3.1415….. o cualquier valor negativo con punto decimal como -12.94834.

String: Tipo de dato que define caracteres y cadenas de caracteres para utilizarse en un contexto de
comunicación escrita. La forma de como se define una cadena de caracteres en python, es utilizando
comillas, por ejemplo. "Esta es una cadena de caracteres".

Listas: Tipo de dato que define una secuencia ordenada de elementos que pueden ser de cualquier tipo
que soporte el lenguaje. Como por ejemplo:
lista = [True, 7,3.1416,"Esta es una cadena de caracteres"]

Tuplas: Tipo de dato que define una secuencia ordenada de elementos que pueden ser de cualquier tipo
que soporte el lenguaje, pero que a diferencia de las listas estas son inmutables. Es decir, no se puede
modificar una vez que se define.

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

Diccionarios: Tipo de dato que define un par ordenado(python 3) de elementos. Donde dentro de cada
par, uno de los elementos se conoce como “la llave”(el cual tiene que ser un valor que no se repite y
que identifica a ese par entre todos los otros pares) y el otro como “el valor”. Se utilizan las llaves{}
para definir el diccionario y para separar en cada par la llave del valor se utilizan dos puntos :, y se
utiliza la coma , para separar cada par. Cada par es un elemento dentro del diccionario:
{llave:valor, llave:valor, llave:valor}, la llave y el valor pueden ser de cualquier tipo de dato, teniendo
en cuenta que la llave no debe de repetirse y debe ser un elemento único para cada par.
Como por ejemplo un diccionario podría servir para almacenar la calificación de un alumno y su
matricula:

calificaciones = {1254845:80, 1256454:90, 1236458: 70…..}

1.1.3. Variables y Constantes.


Las variables son los contenedores donde guardaremos información para poder leerla en un futuro o
modificarla. Las variables deben de tener un nombre, el cual se conoce como “Identificador” y es con
el cual hacemos referencia al contenedor.
Para ponerle un nombre a una variable o para definir un identificador de una variable, debe este de
empezar con una letra o con un guion bajo, y debe de ser diferente a las palabras reservadas del
lenguaje de programación.

Por buenas practicas de programación, el identificador de una variable debe de hacer referencia a su
contenido, debemos de usar palabras cortas en la medida de lo posible, si necesitamos poner mas de
una palabra en un identificador, debemos procurar separar las palabras con un guion bajo o empezando
la segunda palabra con mayúscula, existe todo un tema al redor de esto, que se conoce como estilos de
programación.

En Python no se especifica explícitamente el tipo de dato de la variable al momento de definirla, y este


puede cambiar si se le asigna otro valor de otro tipo diferente, a esta característica se le conoce como
tipado dinámico.

El lengua de programación de python es un lenguaje fuertemente tipado, es decir, hay operaciones que
son especificas para un tipo de dato y si quieres hacer la operación con un tipo de dato diferente
necesitas realizar un cambio de tipo antes de hacer la operación.

En python no existe el concepto como tal de una constante.


En python este concepto se aplica, escribiendo los valores estáticos en variables con identificadores
donde todas las letras son mayúsculas, en un archivo que después se carga en el archivo donde
vayamos a utilizar los valores constantes. Tambien se puede aplicar definiendo en el archivo principal
como variables globales con identificadores con letras mayúsculas que no tengamos la intención de
modificar.

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

1.1.4. Operadores aritméticos, lógicos, relación y su precedencia.


Aritméticos:
Los operadores aritméticos son aquellos que nos permiten realizar operaciones aritméticas. Como lo
son sumas ( + ), restas ( - ), multiplicaciones ( * ) , divisiones ( / ) , modulo ( % ), potencias ( ** ) .

Lógicos:
Los operadores lógicos son aquellos que nos permiten realizar operaciones lógicas.

AND el operador and , nos sirve para realizar operaciones lógicas de tipo and, que siguen la regla de la
tabla de verdad and.
Tabla de verdad -AND:
Operando 1 and operando 2 = Resultado
False False False
False True False
True False False
True True True

OR el operador or, nos sirve para realizar operaciones lógicas de tipo or, que siguen la regla de la tabla
de verdad or.
Tabla de verdad -OR:
Operando 1 or operando 2 = Resultado
False False False
False True True
True False True
True True True

NOT el operador not, nos permite realizar operaciones lógicas de tipo not, que es la negación o
complemento. Y que funciona de la siguiente manera.

Tabla de verdad -NOT:


Operando 1 not – > Resultado
False True
True False

Relacionales:
Son aquellos que nos permiten realizar operaciones de relación.

> Mayor que <= Menor o igual

< Menor que == Igual

> = Mayor o igual != Diferente

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

1.1.5. Instrucciones de entrada y salida.


Instrucción de entrada: input ( )
En Python la función input ( ) nos ayuda a capturar una cadena de caracteres introducida por el usuario.

Ademas de esto podemos incluir una cadena de caracteres como parámetro a la función y esta cadena
se mandara a imprimir en pantalla.

Por ejemplo si quisiéramos capturar el nombre de una persona, en una variable llamada nombre,
podríamos hacer lo siguiente:

nombre = input(“Hola, ¿Cual es tu nombre?”)

Instrucción de salida: print( )


En Python la funcion print( ) nos ayuda a imprimir en pantalla. Esta función puede recibir una cantidad
muy variada de parámetros, como por ejemplo, cadena de caracteres, variables, especificadores de
formato (%f %c %s %d ...) y secuencias de escape (\n \t \\ ... ), por si sola si no se incluyen parámetros
solo mandara a imprimir \n un salto de linea.

Por defecto, print the imprime los elementos separados con coma, con un espacio, pero si al mandar
llamar la función de print tu quieres cambiar eso, solamente tendrías que redefinir el parámetro sep, por
ejemplo si quisiera separar el valor de x=3 y z=5 con dos puntos : en lugar de un espacio, se haría lo
siguiente.

print(x,y,sep=”:”) para que el resultado en pantalla fuera 3:5

Por defecto print termina con un salto de linea ( \n ), si no deseas que termine con ese salto de linea
solo hay que modificar el parámetro end. Por ejemplo si mando llamar dos veces la función print y la
primera vez imprimo “Hola” y la segunda imprimo “UABC” en pantalla quedaría una en una linea y la
otra en otra linea.

print(“HOLA ”)
print(“UABC”)

Hola
UABC

Si queremos que estén la misma linea, hay que modificar end = “”.

print(“HOLA ”, end =””)


print(“UABC”, end = “”)

Hola UABC
Programación y Métodos Numéricos Marco Cabrera Ver. 0.1
Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

1.2. Estructuras de control selectivas.

Las estructuras de control selectivas son aquellas que nos ayudan a realizar un conjunto de
instrucciones, cuando se cumple o no una o varias condiciones especificas.

Selección Simple:
Esta es cuando se ejecuta un conjunto de código siempre y cuando se cumpla la condición, es decir,
siempre y cuando la condición sea verdadera.

Para implementar la selección simple utilizamos la palabra reservada ”if”.


Sintaxis:
if (condicion):
#codigo
#a
#ejecutar

La condición tendrá como resultado, falso o verdadero (True/False), si es True, se ejecutara el código,
si es False, no se ejecutara el código, es decir, si se cumple la condición se ejecutara el código y de lo
contrario no.

Ejemplo. Imprime Eres mayor de edad, solo si el usuario es mayor de edad.


En Python:

edad = int(input(“Dame tu edad”))

if edad >= 18:


print(“Eres Mayor de edad”)

La selección Doble:
Es utilizada cuando queremos ejecutar un conjunto de código cuando se cumple la condición y otro
conjunto cuando no se cumple, es decir, para ambos casos tenemos ciertas instrucciones a ejecutarse
dependiendo de, si se cumple o no la condición.

Para implementar la selección doble se utilizan las palabras reservadas “if” y “else”.
Sintaxis:
if (condicion) :
#código
# a realizar cuando
#se cumple la condición
else:
#código
#a realizar cuando
#NO se cumple la condición

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

La condición independientemente del resultado siempre habrá un código a ejecutarse a diferencia de la


selección simple, donde solo se ejecuta un conjunto si la condición es verdadera.

Ejemplo. Imprime “Eres mayor de edad”, si el usuario es mayor de edad, imprime “No eres mayor de
edad” si el usuario No es mayor de edad.
En Python:

edad = int(input(“Dame tu edad”))

if edad >= 18:


print(“Eres Mayor de edad”)
else:
print(“No eres mayor de edad”)

Seleccion Multiple:
Se utiliza cuando evaluamos múltiples condiciones, y queremos ejecutar un conjunto de instrucciones
cuando se cumple una de ellas y/o cuando no se cumple ninguna.

Para implementar la selección múltiple en Python podemos utilizar la anidación de la palabra reservada
dentro de la estructura else o podemos hacer uso de la palabra reservada “elif”

Sintaxis con anidación if dentro de else.


if (condicion1):
#Hacer este
#código
else:
if (condicion2):
#Hacer este
#otro código
else:
if (condicion3):
#Hacer este
#otro código
else:
…………
…………
…………
if (condicionN):
#hacer este
#otro enésimo código
else:
#En caso de que ninguna de las otras condiciones fueras verdaderas
#Ejecuta esto

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

Sintaxis con la palabra reservada “elif”.


if (condicion1):
#Hacer este
#código
elif (condicion2):
#Hacer este
#otro código
elif (condicion3):
#Hacer este
#otro código
...
elif (condicionN):
#hacer este
#otro enésimo código
else:
#En caso de que ninguna de las otras condiciones fueras verdaderas
#Ejecuta esto

Ejemplo. Código que le presenta un menú de de comida al usuario e imprime dependiendo de la


selección de este.
#Presentar el menu al usuario
print(“Menu de comida”)
print(“a)Tacos”)
print(“b)Papas”)
print(“c)Lasagna”)
print(“d)Sopa”)
print(“e)Pizza”)
print(“f)Salir”)

#capturar la opcion del usuario


opcion = input.lower()

#evaluar la selección del usuario


if opcion == “a”:
print(“¿De que van a ser los tacos?”)
else:
if opcion ==”b”:
print(“¿Francesas o naturales?”)
else:
if opcion == “c”:
print(“¿Con tocino o sin tocino?”)
else:

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

if opcion == “d”:
print(“¿Maruchan o Ramen?”)
else:
if opcion == “e”:
print(“¿Con o sin orilla de queso?”)
else:
if opcion == “f”:
print(“Adiós!!!”)
else:
print(“Opción invalida!!!”)

El mismo ejemplo utilizando la palabra reservada “elif”.


#Presentar el menu al usuario
print(“Menu de comida”)
print(“a)Tacos”)
print(“b)Papas”)
print(“c)Lasagna”)
print(“d)Sopa”)
print(“e)Pizza”)
print(“f)Salir”)

#capturar la opcion del usuario


opcion = input.lower()

#evaluar la selección del usuario


if opcion == “a”:
print(“¿De que van a ser los tacos?”)
elif opcion ==”b”:
print(“¿Francesas o naturales?”)
elif opcion == “c”:
print(“¿Con tocino o sin tocino?”)
elif opcion == “d”:
print(“¿Maruchan o Ramen?”)
elif opcion == “e”:
print(“¿Con o sin orilla de queso?”)
elif opcion == “f”:
print(“Adiós!!!”)
else:
print(“Opción invalida!!!”)

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

1.3. Estructuras de control repetitivas.

Las estructuras de control repetitivas también conocidas como ciclos o bucles, son aquellas que nos
permiten ejecutar un conjunto de instrucciones de manera repetitiva siempre y cuando se cumpla la
condición especifica que controla el ciclo.

En Python vamos a utilizar dos estructuras cíclicas, “for” y “while”.

La estructura “for”:
Esta estructura generalmente se utiliza cuando se sabe de antemano cuantas veces se van a realizar las
instrucciones. “for” en python nos puede ayudar a recorrer elementos dentro de una variable que cuenta
con mas de un elemento.

Sintaxis.
for (condicion):
#Código
#a ejecutarse
#de acuerdo a la condición

Ejemplo. Imprimir 1000 veces “UABC”


Para esto podemos utilizar la función de range que tiene 3 parámetros de entrada
range(inicio,final,incremento), donde por defecto el inicio y el incremento es 0 y 1 respectivamente, los
cuales son parámetros opcionales, de tal forma que el siguiente código tiene el mismo efecto para las 3
versiones.

for i in range(0,100,1):
print(“UABC”)

for i in range(0,100):
print(“UABC”)

for i in range(100):
print(“UABC:”)

La estructura for nos puede servir para iterar sobre variables de múltiples elementos.

Ejemplo. Determinar cuantas vocales y cuantas consonantes tiene una cadena de caracteres.
escuela = “UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA”
vocales = 0
consonantes=0
#iterar sobre la cadena
for letra in escuela.upper().replace(“ ”,””):
if letra == “A” or letra == “E” or letra == “I” or letra == “O” or letra == “U”:
Programación y Métodos Numéricos Marco Cabrera Ver. 0.1
Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

vocales+=1
else:
consonantes+=1
print(“La cadena de caracteres cuenta con ”,vocales,”vocales y con ”,consonantes,”consonantes!”)

Con for tambien podemos iterar sobre listas.

Ejemplo. Imprimir una lista de Nombres(o de lo que sea):

nombres = [“Andrea”,”Carlos”, “Mireya”,”Saul”,”Karla”,”Pedro”,Juan”]


vocales = 0
consonantes=0
for nombre in nombres:
for letra in nombre.upper().replace(“ ”,””):
if letra == “A” or letra == “E” or letra == “I” or letra == “O” or letra == “U”:
vocales+=1
else:
consonantes+=1
print(nombre,“cuenta con ”,vocales,”vocales y con ”,consonantes,”consonantes!”)

lista = [“Andrea”,100,”Carlos”,3.1416, “Mireya”,1234,”Saul”,[1,2,3,4,5],”Karla”,”Pedro”,Juan”]


for elemento in lista:
print(elemento)

La estructura “while”:
El ciclo while se utiliza mayormente cuando no se sabe de antemano cuantas veces se llevara acabo el
ciclo y que este puede estar controlado por una variable tipo centinela. Las instrucciones se repetirán
siempre y cuando la condición verdadera se cumpla.

Sintaxis.
while (condicion):
#Código a ejecutarse
#mientras la condición se cumple
#Aquí se tiene que modificar la variable que esta involucrada en la condición
#(con la excepción de los ciclos infinitos)

Sintaxis de un while infinito.


while True:
#Aqui se ejecuta este codigo de forma infinita
#La instrucción Break, es la unica que puede sacarnos del ciclo

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

Ejemplo. Imprimir el menu de comida hasta que el usuario decida salir

opcion = 0
while opcion != “f”:
#Presentar el menu al usuario
print(“Menu de comida”)
print(“a)Tacos”)
print(“b)Papas”)
print(“c)Lasagna”)
print(“d)Sopa”)
print(“e)Pizza”)
print(“f)Salir”)

#capturar la opcion del usuario


opcion = input.lower()

#evaluar la selección del usuario


if opcion == “a”:
print(“¿De que van a ser los tacos?”)
elif opcion ==”b”:
print(“¿Francesas o naturales?”)
elif opcion == “c”:
print(“¿Con tocino o sin tocino?”)
elif opcion == “d”:
print(“¿Maruchan o Ramen?”)
elif opcion == “e”:
print(“¿Con o sin orilla de queso?”)
elif opcion == “f”:
print(“Adiós!!!”)
else:
print(“Opción invalida!!!”)
Ejemplo. Ciclo infinito
while True:
#código
#código
#código
if temp_critical == 1 and fans_failing == 1:
break
#código
#código
#código
Programación y Métodos Numéricos Marco Cabrera Ver. 0.1
Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

1.3. Funciones.

Las funciones son un conjunto de instrucciones agrupadas que realizan una tarea especifica, que se
definen y se mandan llamar. Una función tiene un nombre, puede o no recibir parámetros de entrada y
puede o no regresar valores.

1.3.1. Funciones Matemáticas (Trigonométricas, raíz cuadrada, exponencial,


logarítmicas, etc.)

Son aquellas que nos ayudan a realizar operaciones matemáticas complejas como raíces, exponentes,
logarítmicas, trigonométricas, etc.

como por ejemplo las siguientes:

#cargar el modulo de funciones matemáticas


import math

#Funciones trigonometricas
print(math.sin(10))
print(math.cos(42))

#Potencia
print(math.pow(12,7))

#Redondeo hacia arriba


print(math.ceil(12.001)

#Redondeo hacia abajo


print(math.floor(12.999))

#copiar signo
print(math.copysign(-3,4))

#Exponente de e^x
print(math.exp(8))

#valor absoluto (float)


print(math.fabs(-2.236))

#factorial
print(math.factorial(7))
Programación y Métodos Numéricos Marco Cabrera Ver. 0.1
Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

#Modulo o residuo de una division (float)


print(math.fmod(7,3))
print(7%3)

#Maximo comun denominador


print(math.gcd(21,42))

#Raiz Cuadrada
print(math.sqrt(25))

#Logaritmo natural
print(math.log(45))

#Logaritmo base 10
print(math.log10(45))
print(math.log(45,10)

1.3.2. Funciones definidas por el usuario.

Son aquellas funciones donde el programador especifica el nombre, los parámetros de entrada, el
cuerpo de la función y los valores de retorno.

Sintaxis:

def NOMBRE_DE_LA_FUNCION(PARAMETROS_DE_ENTRADA):
#El cuerpo de la función,
#es decir el código
#de lo que la función realiza
if condición: #la función puede contener estructuras selectivas
#Aquí el código del if
for i in range(100): #la funcion puede contener estructuras cíclicas
#Aquí el código del for
#En cualquier momento dentro de la función se puede regresar un valor y con ello
#la ejecución de la función terminaría
return VALOR_O_VALORES_DE_RETORNO

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

Por ejemplo las siguientes funciones simples.

#Funcion que regresa el mayor de dos numeros


def mayor(primer_numero, segundo_numero):
if primer_numero > segundo_numero:
return primer_numero
else:
return segundo_numero

#Mandar llamar la función creada “mayor”


print(“El mayor es:”,mayor(9,48))
num1= input(“Dame un numero: “)
num2=input(“Dame otro numero: “)
resultado = mayor(num1,num2)
print(“El mayor es:”,resultado)

#Función que manda imprimir un menú en pantalla


def menu():
print(“Comida”)
print(“a)Tacos”)
print(“b)Papas”)
print(“c)Lasagna”)
print(“d)Sopa”)
print(“e)Pizza”)
print(“f)Pozole”)
print(“g)Hamburguesas”)
print(“h)Tortas”)
print(“i)Chimichangas”)
print(“j)Quesadillas”)
print(“k)Salir”)
return

#Mandar llamar la función que imprime el menú


menu()
------------------------------------------------------------------
while opcion != “K”:
#deplegar el menu
menu() ←------- Aquí la función nos ayuda a imprimir el menú de comida
#capturar la opcion del usuario
opcion = input()
-------------------------------------------------------------------
Programación y Métodos Numéricos Marco Cabrera Ver. 0.1
Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

1.3.2.1. Variables de funciones.


Son aquellas variables que están definidas dentro de la función y que solo ahí pueden ser modificadas.
Cada que definimos una variable dentro de una función por defecto estamos creando una variable de
función que solo existirá mientras esa función se ejecuta y que solo localmente la podremos modificar
dentro de la función misma.

#Ejemplo
x=0 # Variable global x
y=0 # Variable global y
z=0 # Variable global z

def funcionX(x,y,z):
x = 10 #Variable local x
y = 20 #Variable local y
z = 30 #Variable local z
return x,y,z

valores = funcionX(x,y,z)
print(x,y,z) #imprimira el valor de las variables globales los cuales son 0,0 y 0

1.3.2.2. Variables globales.


Son aquellas que se definen fuera de las funciones y que pueden ser modificadas/leídas en todo el
programa, dentro y fuera de cualquier función.

#Ejemplo
x=0 # Variable global x
y=0 # Variable global y
z=0 # Variable global z
def funcionX():
global x
global y
global z
x = 10 #Variable global x
y = 20 #Variable global y
z = 30 #Variable global z
return x,y,z

valores = funcionX(x,y,z) #en valores se almacena una copia de los 3 valores 10,20 y 30

print(x,y,z) #imprimira el valor de las variables globales los cuales son 10,20 y 30

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

1.3.2.3. Regreso de valores de una función.


Es el valor que nos regresa una función al mandarla llamar, que puede ser de cualquier tipo incluyendo,
listas, tupas, diccionarios entre otros.

#función que regresa el mayor de una lista


def mayor(lista):
mayor = int(lista[0])
for numero in lista:
if int(numero) > mayor:
mayor = int(numero)
return mayor #Regresa el mayor de la lista en formato int()

lista = input(“Dame una lista de números separados por un espacio:\n”).split()

print(“El mayor de los numeros es:”,mayor(lista))

#Programa que evaluá si dos nombres tienen la misma cantidad de vocales

def vocales(nombre):
vocal = 0
for letra in nombre.lower():
if letra == “a” or letra == “e” or letra == “i” or letra == “o” or letra == “u”:
vocal+=1
return vocal

def iguales(primer_nombre,segundo_nombre):
if vocales(primer_nombre) == vocales(segundo_nombre):
return True
else:
return False

primero = input(“Escribe un nombre:”)


segundo = input(“Escribe otro nombre:”)

if iguales(primero,segundo):
print(“Ambos nombres tienen la misma cantidad de vocales!!! vocales: “,vocales(primero))
else:
print(“El primer nombre tiene:”,vocales(primero),”vocales!”)
print(“El segundo nombre tiene:”,vocales(segundo),”vocales!”)

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

1.3.3. Funciones recursivas.


Son aquellas funciones que se mandan llamar a si mismas.

#Funcion recursiva que suma una lista de numeros

lista = [1,2,3]

def suma(lista):
if len(lista)>1:
return lista[0] + suma(lista[1:])
else:
return lista[0]

print(suma(lista))

#Corrida de escritorio para entender como se va ejecutando


#1 mandamos llamar la funcion
print(suma([1,2,3]))
def suma([1,2,3]):
if 3>1:
return 1 + suma([2,3])
def suma([2,3]):
if 2 > 1:
return 2 + suma([3])
def suma([3])
if 1 >1:
return lista[0] + suma(lista[1:])
else:
return 3

#Resumen del retorno de la función después de ser llamada a si misma dos veces
return 1 + suma([2,3])
return 2 + suma([3])
return 3
return 1 + 2 + 3

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

1.3.4. Creación de bibliotecas.

Las bibliotecas de funciones son un compendio de funciones que se requieren utilizar con frecuencia y
fuera del ámbito donde están definidas.

En python 3 podriamos definir un archivo llamado “misfunciones.py” con un conjunto de funciones


que se puedan mandar llamar desde otro archivo, utilizando la palabra reservada “import” y haciendo
referencia al nombre del archivo.

#contenido del archivo misfunciones.py


def suma(lista):
if len(lista)>1:
return lista[0] + suma(lista[1:])
else:
return lista[0]

def mayor(primer_numero, segundo_numero):


if primer_numero > segundo_numero:
return primer_numero
else:
return segundo_numero

MAX_VALUE = 255

Una vez que tenemos ese archivo con las funciones deseadas, existen varias formas de cargar el modulo
o las funciones requeridas dentro de otro archivo .py

Diferentes formas de cargar las funciones o módulos:


#import seguido del nombre del archivo
import misfunciones
#para usar la función es el nombre seguido de un punto y la función a utilizar
print(misfunciones.mayor(45,96))

otra forma:

#Crear un alias del modulo para acortar el nombre


import misfunciones as mf
#para usar la función es el alias seguido de un punto y la función a utilizar
print(mf.mayor(45,96))

otra forma:

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

#Si quiero llamar la funcion solamente por su nombre


from misfunciones import *
#para usar la función es solamente el nombre de la misma
print(mayor(45,96))

#Si solo ocupo una funcion


from misfunciones import mayor
#para usar la función es solamente el nombre de la misma
print(mayor(45,96))

#Si solo ocupo una funcion y quiero cambiarle el nombre


from misfunciones import mayor as m
#para usar la función es solamente el alias que es m
print(m(45,96))

#Si ocupo algunas funciones


from misfunciones import mayor, suma,MAX_VALUE
#para usar la función es solamente el nombre de la misma
print(mayor(45,96))
print(suma([1,2,3,4,5,6,7]))
print(MAX_VALUE)

1.4. Arreglos.
Son un conjunto de elementos del mismo tipo, es una estructura que se utiliza para almacenar datos de
un mismo contexto.

1.4.1 Vectores.

Son un arreglo unidimensional, al cual podemos acceder a todos sus elementos a través de un solo
indice.

Vector = [ 1, 2, 3, 4, 5, 6, 7 ] → [1][2][3][4][5][6][7] ← Vector de 7 valores entre [] cada valor


0 1 2 3 4 5 6 ← El indice que hacer referencia al elemento
Imaginemos que un vector es un renglón en una hoja cuadriculada, la cantidad de “cuadritos” que tiene
el renglón, es la cantidad de elementos que tiene, cada “cuadrito” es un elemento, y lo que hay dentro
de cada “cuadrito” es el valor que almacena el elemento. El indice seria el numero con el cual
asociamos a cada “cuadrito” en donde el primer “cuadrito” empieza con el valor “0”, el siguiente con el
valor “1”, el siguien con el valor “2”, el siguiente con el valor “3” y asi sucesivamente en forma
ascendente de 1 en uno.

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

Ejemplo con arreglos. calificaciones


cant_alumnos =40
calif_gpo1 = []

#Captura las calificaciones


for alumnos in range(cant_alumnos):
calif_gpo1.append(int(input(“Dame la calificacion:”)))

#calcula el promedio
suma=0
promedio = 0
for calificacion in calif_gpo1:
suma+=calificacion
promedio = suma/cant_alumnos

#Imprimir el promedio
print(“El promedio las calificaciones capturadas es:”,promedio)

Si no tuviéramos arreglos, para implementar el ejemplo anterior tendríamos que hacer referencia
individualmente a cada elemento por su identificador.

Ejemplo sin arreglos.


cant_alumnos =120
alumno1 = 0
alumno2 = 0
alumno3 = 0
……..
alumno38 = 0
alumno39 = 0
alumno40 =0

#capturar las calificaciones


alumno1 = int(input(“Dame la calificacion”))
alumno2 = int(input(“Dame la calificacion”))
alumno3 = int(input(“Dame la calificacion”))
……………………………………………….
alumno38 = int(input(“Dame la calificacion”))
alumno39 = int(input(“Dame la calificacion”))
alumno40 = int(input(“Dame la calificacion”))

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

#calcula el promedio

suma = alumno1 + alumno2 + alumno3 + …….. alumno38 + alumno39 + alumno40


promedio = suma /cant_alumnos

Como podemos apreciar con los arreglos es mas sencillo y legible el codigo, y nos podemos ayudar en
el caso de python de que el ciclo for puede iterar sobre todos los elementos. Aunque la idea principal es
que un elemento se puede modificar, o se puede leer simplemente, con el nombre del arreglo y el indice
que corresponde al elemento a modificar, por ejemplo si quisiera modificar la calificación del primer
elemento, bastaría con usar → calif_gpo1[0] = 100 o si se quiera imprimir en pantalla, bastaria con
poner → print(calif_gpo1[0])

1.4.2 Matrices.

Son arreglos bidimensionales, a los cuales podemos acceder a sus elementos a través de dos indices.
El primer indice es para el renglón, y el segundo indice es para la columna.

matrix = [[1,2,3],[4,5,6],[7,8,9]]

0 1 2 ← Indices que corresponden a las columnas


0 [1][2][3]
1 [4][5][6]
2 [7][8][9]

^----------- Son los indices de los renglones

Una matriz cuenta con renglones y columnas.


Volviendo a la analogía realizada en los vectores, una matriz la podríamos imaginar como una hoja
cuadriculada, que contiene varios renglones y varias columnas, donde el primer renglón es el renglón
“0” y la primer columna es la columna “0”. Para identificar cada elemento, necesitamos un valor de
renglón y un valor de columna, es decir, ocupamos dos indices, uno para el renglón y otro para la
columna. Por lo tanto para hacer referencia a cada elemento, es necesario saber, a que renglón y a que
columna pertenece.

Si para la matriz anterior quisiéramos modificar el elemento que se encuentra al centro de los renglones
y al centro de las columnas con el valor 100, tendríamos que hacer lo siguiente:
matrix[1][1] = 100

Las matrices son estructuras muy útiles, para manipular grandes cantidades de valores que están en un
mismo contexto, por ejemplo la representación de una imagen en pantalla, que esta constituida por un
arreglo matricial de pixeles, donde cada pixel a su ves es un conjunto de 3 valores de intensidad de
color Rojo, Verde y Azul (Formato RGB).

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

Arreglos en Python:
Comúnmente cuando manejamos arreglos en python, se utiliza un modulo llamado Numpy, debido a
que python no maneja nativamente el concepto convencional de arreglos.

Hasta el momento en los ejemplos anteriores hemos utilizado lista y no arreglos, propiamente.
Pero a continuación veremos como utilizar arreglos de numpy.

Implementación de vectores con arreglos de numpy:

import numpy as np

vector = np.array([1,2,3,4,5,6,7,8,9])

#imprimir todos los elementos haciendo referencia a todo el arreglos


print(vector)

#imprimir todos los elementos haciendo referencia a cada uno de los elementos del arreglos
for i in range(9):
print(vector[i])

Implementación de las matrices con arreglos de numpy:

import numpy as np

matrix = np.array([[1,2,3],[4,5,6],[7,8,9]])

#imprimir haciendo referencia a todos los elementos


print(matrix)

#imprimir solo un elemento


print(matrix[1,1])

#imprimir todos los elementos haciendo referencia a cada uno de ellos


for i in range(np.shape(matrix)[0]):
for j in range(np.shape(matrix)[1]):
print(matrix[i,j])

#imprimir los valores de la diagonal de la matriz 3x3


for i in range(3):
print(matrix[i,i])

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1


Universidad Autónoma de Baja California Apuntes
Facultad de Ciencias Químicas e Ingeniería Unidad 1

Matriz tridimensional y estructuras n-dimensionales.


Una matriz tridimensional es un arreglo tridimensional para el cual se necesitan 3 indices para hacer
referencia individualmente a cada elemento de la matriz.

Un arreglo n-dimensional requiere de n cantidad de indices para hacer referencia individual a cada uno
de sus elementos.

Volviendo a la analogía del cuaderno cuadriculado, cada elemento es un “cuadrito”, un vector seria una
estructura que nos ayudaría a identificar con un indice, un elemento dentro de un renglón de la pagina
cuadriculada, una matriz seria una estructura que nos ayuda a identificar un elemento en una pagina del
cuaderno, una matriz tridimensional seria una estructura que nos ayuda a identificar un elemento dentro
de un cuaderno, es decir, tendríamos un indice para el renglón, otro indice para la columna y otro indice
para la pagina, así que de esta manera podríamos identificar cada elemento(“Cuadrito”), de todo el
cuaderno, sabiendo que renglón, que columna y que pagina.

Para arreglos de mas dimensiones, imaginemos que queremos identificar cada “cuadrito”, sabiendo que
cada cuaderno esta en una caja, y que cada caja esta en un cuarto y cada cuarto esta dentro de un
edificio y que hay varios edificios, entonces un indice para el edificio, otro indice para el cuarto, otro
indice para la caja y otro indice para el cuaderno y otro indice para la pagina y otro indice para la
columna y otro indice para el renglón. De esta manera ocuparíamos 7 indices para identificar cada
“cuadrito” de todas las paginas de todos los cuadernos que están en cajas en todos los cuartos de todos
los edificios. Es decir esta seria una estructura de 7 dimensiones.

Formato de colores RGB de 24 bits.


Existen muchos formatos para manejar el color, uno de ellos es el formato “RGB”(RedGreenBlue) de
24 bits el cual ha sido utilizado ampliamente. Este formato parte de la premisa de que a partir de los
colores básicos de Rojo, Verde y Azul podemos representar una gama muy amplia de colores.

El formato RGB de 24 bits, maneja un rango de valores de 8 bits para cada color, donde esos 8 bits
estan destinados a representar valores unicamente positivos. Entonces cada color maneja un rango de
valores de 0 a 255. Lo cual nos permite manejar una gamma de 16,777,216 colores.

Red Green Blue


0-255 0-255 0-255

Una imagen a color de RGB de 24 bits esta compuesta por un conjunto de renglones y
columnas(matriz), de cada uno de los colores, es decir, esta compuesto de una matriz tridimensional,
donde la primer dimensión son los renglones, la segunda son las columnas y la tercera es el color. En
otras palabras esta compuesta de 3 matrices, una matriz para las intensidades del rojo, otra matriz para
las intensidades del verde y otra matriz para las intensidades del azul.

Una imagen a color esta compuesta por un conjunto de renglones y columnas donde cada elemento es
in pixel. En un formato RGB cada pixel esta compuesto de tres valores, un valor de intensidad para el
rojo (0-255) , un valor de intensidad para el verde (0-255) y un valor de intensidad para el azul(0-255).

Programación y Métodos Numéricos Marco Cabrera Ver. 0.1

También podría gustarte