You are on page 1of 103

Asignatura de Programación

Unidad 3: Lenguaje de Programación

Tema 1: Fundamentos

Autor/es: Claustro de Computación Aplicada y


Metodologías de la Computación
Año: 2022

www.ups.edu.ec
Resultado
de aprendizaje
RA3: Desarrolla aplicaciones utilizando el
lenguaje de programación.

2
Contenido
3.1 Introducción.
3.2 Generalidades del Lenguaje.
3.3 Tipos de Datos.
3.4 Variables.
3.5 Operadores.
3.6 Estructuras de Control.
3.7 Funciones
3
Subtema 1:

Introducción

4
Tema: Fundamentos

Introducción
Un lenguaje de programación es un conjunto
de símbolos y códigos usados para orientar
la programación de estructuras en el
desarrollo o implementación de algoritmos.

Conocer cómo funciona un lenguaje de


programación es de vital importancia para
mejorar la productividad de los procesos y
conseguir una diferenciación competitiva en
el mercado.

A lo largo de los años, los lenguajes de


programación han aumentado su potencia y
flexibilidad para, de esa forma, llevar a cabo
las tareas complejas que la innovación y
las nuevas tecnologías de información y
comunicación (TIC) nos exigen.
5
Tema: Fundamentos

Lenguajes de programación
Todas las máquinas y dispositivos requieren de un
lenguaje de programación para cumplir con sus
funciones.

Si se conoce como poder utilizarlos adecuadamente,


estos permitirán alcanzar los objetivos en menos
tiempo y poder alcanzar mayor productividad.

https://www.youtube.com/watch?v=pWw4UtQhdek

6
Tema: Fundamentos

¿Qué es un lenguaje de programación?


Un lenguaje de programación, en palabras simples, es el conjunto de
instrucciones a través del cual los humanos interactúan con las
computadoras.

Un lenguaje de programación nos permite comunicarnos con las


computadoras a través de algoritmos e instrucciones escritas en una
sintaxis que la computadora entiende e interpreta en lenguaje de
máquina.

Los lenguajes de programación permiten a las computadoras procesar


de forma rápida y eficientemente grandes y complejas cantidades de
información. Por ejemplo, si a una persona se le da una lista de números
aleatorios que van de uno a diez mil y se le pide que los coloque en
orden ascendente, es probable que tome una cantidad considerable de
tiempo e incluya algunos errores, mientras que si le das la misma
instrucción a una computadora utilizando un lenguaje de programación,
podrás obtener la respuesta en unos cuantos segundos y sin errores.
7
Tema: Fundamentos

Características del lenguaje de programación


Para utilizar un lenguaje de programación, de manera efectiva, se
debe de estudiarlo y comprenderlo desde tres perspectivas:

• Sintaxis: el conjunto de símbolos y reglas para formar


sentencias.
• Semántica: las reglas para transformar sentencias en
instrucciones lógicas.
• Pragmática: utilizando las construcciones particulares del
lenguaje.

En español, las letras forman palabras que forman oraciones. En los


lenguajes de programación, los caracteres forman sentencias que
en conjunto forman instrucciones.

8
Tema: Fundamentos

Sintaxis
La sintaxis es la estructura de una declaración en un lenguaje de
programación.

Si por ejemplo te preguntas “¿Es difícil la sintaxis de C#?“


básicamente te estarías preguntando si aprender a programar
en C# es difícil. Por lo general, cuando pensamos en la sintaxis
queremos decir algo que el compilador puede verificar
estáticamente.

Para aclarar esto aún más, observa estos ejemplos de sintaxis en


distintos lenguajes de programación, todos intentan describir la
misma instrucción, es decir, esperan obtener como salida del
programa el mismo resultado

9
Tema: Fundamentos

Semántica
Por otro lado, la semántica trata sobre el significado de la
instrucción. Responde a las preguntas:

1. ¿Es válida ésta instrucción?


2. ¿Qué significa la instrucción?
3. ¿Qué queremos lograr con la instrucción?

En el ejemplo, las 2 sentencias o instrucciones son


sintácticamente válidas en C#.

¿Pero, qué quieren decir?


¿Es incluso válido intentar transformar estas declaraciones en una
secuencia ejecutable de instrucciones?

Estas son el tipo de preguntas que están en el corazón de la


semántica.

10
Tema: Fundamentos

Pragmática
La pragmática, en programación, se refiere al modo en que el
contexto influye en la forma cómo interpretamos y
analizamos los problemas que queremos resolver con un
lenguaje de programación. Como vimos en el ejemplo de
sintaxis, el mismo problema puede ser resuelto utilizando
diferentes lenguajes de programación, incluso existen
problemas que pueden ser resueltos aplicando distintas
sentencias o instrucciones lógicas usando el mismo lenguaje.

Aplicamos el pragmatismo cuando creamos una solución


considerando el contexto y cómo afecta a nuestro problema
y a nuestra solución, aunque eso implique utilizar otro
lenguaje o herramienta que nos ofrece una mejor
oportunidad de resolver el problema. Aprender varios
lenguajes y enfoques diferentes, puede ayudarte a ampliar tu
pensamiento y te ayuda a evitar que quedes atrapado en una
única forma de hacer las cosas.
11
Tema: Fundamentos

Tipos de Lenguajes de Programación


Los lenguajes de programación se dividen principalmente en
tres tipos:

1. Bajo nivel, que se comunican directamente con el


lenguaje binario de las máquinas.

2. Alto nivel, que facilitan su comprensión por parte de los


programadores.

12
Tema: Fundamentos

Lenguajes de Bajo Nivel


En primer lugar, debes saber que un lenguaje de bajo nivel es
un lenguaje de programación.

Un lenguaje de programación de bajo nivel, es aquel en el que


sus instrucciones ejercen un control directo sobre el
hardware y por lo tanto están condicionados por la
estructura física de las computadoras que lo soportan.

El uso del término bajo en su nombre no quiere decir que


este lenguaje sea menos potente o importante que un
lenguaje de alto nivel, simplemente se refiere a la reducida
abstracción que existe entre el lenguaje y el hardware.

13
Tema: Fundamentos

Tipos de Lenguajes de Bajo Nivel


El término lenguaje de bajo nivel no es ningún lenguaje en concreto, sino que engloba varios tipos de lenguajes, existen tres
tipos distintos:

1. El primer lenguaje de bajo nivel es el famoso Código Binario, el más básico y que forma parte de todos los sistemas
informáticos. Tan solo usa los números 0 y 1 para formar el código. El 1 representa al “todo” y el 0, por el contrario,
representa el “nada”.

2. El segundo lenguaje de bajo nivel es el Lenguaje de máquina: También está formado por unos (1) y ceros (0) y tal y como
su nombre indica, este es el código que comunicará directamente las instrucciones a la computadora (CPU). El uso de este
lenguaje es esencial ya que es el que se usa para enviar de forma literal todas las tareas que se tienen que llevar a cabo.

3. En tercer puesto tenemos los lenguajes ensambladores, también conocidos como nemotécnicos o nemónicos, son un
primer nivel de abstracción. Estos códigos requieren de alguna herramienta como un compilador para traducirlos al
lenguaje de máquina de manera que el CPU pueda ejecutarlos, estos no son programas ejecutables directamente por el
ordenador.

14
Tema: Fundamentos

Lenguajes de Alto Nivel


Cuando hablamos de un lenguaje de alto nivel nos
referimos al tipo de lenguaje de programación que no
expresa los algoritmos teniendo en cuenta la capacidad
que tienen las máquinas para ejecutar órdenes, sino al
que se utiliza teniendo en cuenta las capacidades
cognitivas de los seres humanos.

Existen desde la década de los 50 y nacieron con el


objetivo de ir más allá respecto a las limitaciones de los
lenguajes de bajo nivel, permitiendo a los usuarios
resolver problemas de una forma sencilla y rápida.

Desde entonces han aparecido distintos lenguajes de alto


nivel y es conveniente conocer, al menos, los principales.

15
De interés:

Lectura

16
Java
// distintos tipos de comentarios
// identación o tabulación es importante
class Main { C++
static public void main( String args[ ] ) { #include <iostream.h>
System.out.println ( “Hola mundo” ) ; main() {
} cout «“ Hola mundo” « endl;
} return 0;
Python }
# desde el programa fuente
print("Hola a todos") Scheme
# desde una función
(define holamundo
# se debe escribir en la consola ( lambda ()
# el nombre de la función
# con los paréntesis al final
(display “Hola mundo” )
def hello(): (newline) ) )
print ("Hola Joe")

https://repl.it/teacher

17
Java
// distintos tipos de comentarios
// identación o tabulación es importante
class Main {
static public void main( String args[ ] ) {
System.out.println ( “Hola mundo” ) ;
}
}

https://repl.it/teacher
18
C++
#include <iostream.h>
main() {
cout «“ Hola mundo” « endl;
return 0;
}

https://repl.it/teacher 19
Scheme
;otra forma de comentario
(define holamundo
( lambda ()
(display “Hola mundo” )
(newline) ) )

https://repl.it/teacher 20
Python
# desde el programa fuente
print("Hola a todos")
# desde una función
# se debe escribir en la consola
# el nombre de la función
# con los paréntesis al final
def hello():
print ("Hola Joe")

https://repl.it/teacher 21
En Python 2.7.15

def mi_funcion():
num = raw_input(“Número: ”)
if num < 10:
print “El número es menor que 10”
else:
print “El número NO es menor que 10”

mi_funcion()

Más información en:


https://es.stackoverflow.com/questions/38288/diferencia-entre-input-y-raw-input 22
En Python 3.6.4

def mi_funcion():
num = input(“Número: “)
if int(num) < 10:
print (“El número es menor que 10”)
else:
print (“El número NO es menor que 10”)

mi_funcion()

23
En Python 2.7.15

def mi_funcion():
num = raw_input(“Número: ”)
if num < 10:
print “El número es menor que 10”
else:
print “El número NO es menor que 10”

mi_funcion()
En Python 3.6.4

def mi_funcion():
num = input(“Número: “)
if int(num) < 10:
print (“El número es menor que 10”)
else:
print (“El número NO es menor que 10”)

mi_funcion() 24
25
Para utilizar Python de consola
Saber si tengo Python y qué versión
tengo instalada:
Tecla Windows + R
Python

Python 2.7.15
https://es.stackoverflow.com/questions/69835/c%C3%B3mo-miro-la-version-de-python-en-cmd-de-windows
26
Para utilizar Python de consola
Saber si tengo Python y qué versión
tengo instalada:
Tecla Windows
Anaconda Prompt

python --version

Python 3.6.6
https://es.stackoverflow.com/questions/69835/c%C3%B3mo-miro-la-version-de-python-en-cmd-de-windows
27
Para utilizar Python de consola
Saber si tengo Python y qué versión
tengo instalada:
Tecla Windows
Símbolo del sistema es cmd

python --version

Python 2.7.15
https://es.stackoverflow.com/questions/69835/c%C3%B3mo-miro-la-version-de-python-en-cmd-de-windows
28
Puede instalar Python desde

https://www.python.org/ https://www.anaconda.com/

29
Subtema 2:

Generalidades del Lenguaje

30
Lenguaje de Programación

Python

31
Tema: Generalidades

¿Qué es Python?
En términos técnicos, Python es un lenguaje
de programación de alto nivel, orientado a
objetos, con una semántica dinámica
integrada, principalmente para el desarrollo
web y de aplicaciones informáticas.

Es muy atractivo en el campo del Desarrollo


Rápido de Aplicaciones (RAD) porque ofrece
tipificación dinámica y opciones de
encuadernación dinámicas.

Python es relativamente simple, por lo que es


fácil de aprender, ya que requiere una sintaxis
única que se centra en la legibilidad. Los
desarrolladores pueden leer y traducir
el código Python mucho más fácilmente que
otros lenguajes.
32
Tema: Generalidades

¿Qué es Python?
Por tanto, esto reduce el costo de mantenimiento y de desarrollo del programa porque permite que los equipos trabajen en
colaboración sin barreras significativas de lenguaje y experimentación.

Además, soporta el uso de módulos y paquetes, lo que significa que los programas pueden ser diseñados en un estilo
modular y el código puede ser reutilizado en varios proyectos. Una vez se ha desarrollado un módulo o paquete, se puede
escalar para su uso en otros proyectos, y es fácil de importar o exportar.

Por otro lado, uno de los beneficios más importantes de Python es que tanto la librería estándar como el intérprete están
disponibles gratuitamente, tanto en forma binaria como en forma de fuente.

Tampoco hay exclusividad, ya que Python y todas las herramientas necesarias están disponibles en todas las plataformas
principales. Por lo tanto, es una opción multiplataforma, bastante tentadora para los desarrolladores que no quieren
preocuparse por pagar altos costos de desarrollo.

En definitiva, es un lenguaje de programación relativamente fácil de aprender, y las herramientas necesarias están
disponibles para todos de forma gratuita. Esto hace que sea accesible para casi todo el mundo.
33
Tema: Generalidades

¿Qué es Python?
Sitios donde se puede acceder a PYTHON:

1. https://www.python.org/

2. https://www.anaconda.com/products/distribution

3. https://www.jetbrains.com/es-es/pycharm/download/#section=windows

4. https://www.programiz.com/python-programming/online-compiler/

5. https://www.onlinegdb.com/online_python_compiler

6. https://colab.research.google.com/?utm_source=scs-index

34
Tema: Generalidades

Usando Python como calculadora


El intérprete puede utilizarse como una simple calculadora; puedes introducir una expresión y este escribirá los valores.
La sintaxis es sencilla: los operadores +, -, * y funcionan como en la mayoría de los lenguajes (por ejemplo, Pascal o C); los
paréntesis (``()) pueden ser usados para agrupar. Por ejemplo:

35
Tema: Generalidades

¿Cómo funciona Python?


El lenguaje de programación Python utiliza módulos de
código que son intercambiables en lugar de una larga lista
de instrucciones que era estándar para los lenguajes de
programación funcional.

La implementación estándar de Python se llama «cpython«.


En definitiva, no convierte su código en lenguaje de
máquina o código máquina, algo que el hardware puede
entender.

En realidad, lo convierte en algo llamado código de byte.


Este código de bytes no puede ser entendido por la CPU.
Así que necesitamos un intérprete llamado Máquina Virtual
Python (PVM) que ejecuta los códigos de bytes.

36
Tema: Generalidades

¿Cómo funciona Python?


El intérprete de Python realiza las siguientes tareas para ejecutar un
programa:

1. Paso 1 : El intérprete lee un código o instrucción python. Luego verifica


que la instrucción esté bien formateada, es decir, comprueba la sintaxis
de cada línea. Si encuentra algún error, detiene inmediatamente la
traducción y muestra un mensaje de error.

2. Paso 2 : Si no hay ningún error, es decir, si la instrucción o el código


python está bien formateado, el intérprete lo traduce a su forma
equivalente en un lenguaje intermedio llamado «código Byte». Así,
después de la ejecución exitosa de la escritura o el código python, se
traduce completamente en código Byte.

3. Paso 3: El código del byte se envía a la Máquina Virtual Python, donde


de nuevo se ejecuta el código del byte en PVM. Si se produce un error
durante esta ejecución, ésta se detiene con un mensaje de error.
37
Subtema 3:

Tipos de Datos

38
Tema: Generalidades

Tipos de Datos
En cualquier lenguaje de programación de alto nivel se
manejan tipos de datos. Los tipos de datos definen un
conjunto de valores que tienen una serie de características y
propiedades determinadas.

En Python, todo valor que pueda ser asignado a una variable


tiene asociado un tipo de dato. En Python todo es un objeto,
así que los tipos de datos serían las clases (donde se definen
las propiedades y qué se puede hacer con ellas) y las variables
serían las instancias (objetos) de los tipos de datos.

En definitiva, un tipo de dato establece qué valores puede


tomar una variable y qué operaciones se pueden realizar sobre
la misma.

39
Tema: Generalidades

Tipos de Datos
Igual que en el mundo real cada objeto pertenece a una
categoría, en programación se manejan objetos que tienen
asociado un tipo determinado.

Los programas están formados por código y datos. Pero a


nivel interno de la memoria del ordenador no son más que una
secuencia de bits. La interpretación de estos bits depende del
lenguaje de programación, que almacena en la memoria no
sólo el puro dato sino distintos metadatos.

Cada «trozo» de memoria contiene realmente un objeto, de ahí


que se diga que en Python todo son objetos. Y cada objeto
tiene, al menos, los siguientes campos:

• Un tipo del dato almacenado.


• Un identificador único para distinguirlo de otros objetos.
• Un valor consistente con su tipo.
40
Tema: Generalidades

Tipos de Datos en Python


¿Qué tipos de datos trae consigo Python?

En Python podemos encontrar distintos tipos de datos con


diferentes características y clasificaciones.

Los tipos de datos básicos de Python son los booleanos,


los numéricos (enteros, punto flotante y complejos) y
las cadenas de caracteres, también define otros tipos de datos,
entre los que se encuentran:

• Secuencias: Los tipos list, tuple y range


• Mapas: El tipo dict
• Conjuntos: El tipo set
• Iteradores
• Clases
• Instancias
• Excepciones
41
Tema: Generalidades

Tipos de Datos

42
Tema: Generalidades

Tipos Numéricos
Python define tres tipos de datos numéricos básicos:

1. Enteros.

2. Números de punto flotante.

3. Números complejos.

43
Tema: Generalidades

Tipos Numéricos – Enteros


El tipo de los números enteros es int. Este tipo de dato
comprende el conjunto de todos los números enteros, pero
como dicho conjunto es infinito, en Python el conjunto está
limitado realmente por la capacidad de la memoria disponible.
No hay un límite de representación impuesto por el lenguaje.

Un número de tipo int se crea a partir de un literal que


represente un número entero o bien como resultado de una
expresión o una llamada a una función.

44
Tema: Generalidades

Tipos Numéricos – Punto Flotante


Al igual que ocurre con los números enteros, los números
reales son infinitos y, por tanto, es imposible representar todo
el conjunto de números reales con un ordenador.

Para representar el mayor número posible de los números


reales con las limitaciones de memoria (tamaños de palabra de
32 y 64 bits), se adaptó la notación científica de
representación de números reales al sistema binario (que es el
sistema que se utiliza en programación para representar los
datos e instrucciones).

En esta notación científica, los números se representan así:

45
Tema: Generalidades

Tipos Numéricos – Punto Flotante


El caso es que la suma de la representación en punto flotante en
binario del número 1,1 y de la representación en punto flotante en
binario del número 2,2, dan como resultado 3,3000000000000003.

Otro ejemplo es la representación del número 1/3. En algún momento,


el ordenador tiene que truncar el número periódico resultante.

La explicación final es que los números de punto flotante se


representan en el hardware del ordenador como fracciones de base 2
(binarias). Y el problema está en que la mayoría de las fracciones
decimales no se pueden representar de forma exacta como fracciones
binarias porque tienen infinitos números decimales.

Una consecuencia es que, en general, los números decimales de punto


flotante que se usan en las aplicaciones son una aproximación de los
números binarios de punto flotante realmente almacenados en la
máquina.
46
Tema: Generalidades

Tipos Numéricos – Complejos


El último tipo de dato numérico básico que tiene Python es el
de los números complejos, complex.

Los números complejos tienen una parte real y


otra imaginaria y cada una de ellas se representa como
un float.

Para crear un número complejo, se sigue la siguiente


estructura <parte_real>+<parte_imaginaria>j.

Y se puede acceder a la parte real e imaginaria a través de los


atributos real e imag:

47
Tema: Generalidades

Tipos Numéricos – Aritmética


Con todos los tipos numéricos se pueden aplicar las
operaciones de la aritmética: suma, resta, producto, división,

En Python está permitido realizar una operación aritmética


con números de distinto tipo. En este caso, el tipo numérico
«más pequeño» se convierte al del tipo «más grande», de
manera que el tipo del resultado siempre es el del
tipo mayor.

Entendemos que el tipo int es menor que el tipo float que a


su vez es menor que el tipo complex. Por tanto, es posible,
por ejemplo, sumar un int y un float:

48
Tema: Generalidades

Tipo Booleano
En Python la clase que representa los valores booleanos es bool.
Esta clase solo se puede instanciar con dos
valores/objetos: True para representar verdadero y False para
representar falso.

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) o como
operando de una operación booleana.

Por defecto, cualquier objeto es considerado como verdadero con


dos excepciones:

• Que implemente el método __bool__() y este devuelva False.


• Que implemente el método __len__() y este devuelva 0.
49
Tema: Generalidades

Tipo Cadena de Caracteres


Otro tipo básico de Python, e imprescindible, son las secuencias o
cadenas de caracteres. Este tipo es conocido como string aunque
su clase verdadera es str.

Formalmente, un string es una secuencia inmutable de caracteres


en formato Unicode. Para crear un string, simplemente tienes que
encerrar entre comillas simples '' o dobles "" una secuencia de
caracteres.

Se puede usar indistintamente comillas simples o dobles, con una


particularidad. Si en la cadena de caracteres se necesita usar una
comilla simple, tienes dos opciones: usar comillas dobles para
encerrar el string, o bien, usar comillas simples pero anteponer el
carácter \ a la comilla simple del interior de la cadena. El caso
contrario es similar.

50
Tema: Generalidades

Otros Tipos
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.

• Las listas son secuencias mutables de valores.


• Las tuplas son secuencias inmutables de valores.
• Los conjuntos se utilizan para representar conjuntos únicos
de elementos, es decir, en un conjunto no pueden existir
dos objetos iguales.
• Los diccionarios son tipos especiales de contenedores en
los que se puede acceder a sus elementos a partir de una
clave única.

51
Tema: Generalidades

Conocer el Tipo de una variable


Existen dos funciones que permiten identificar el tipo de
dato de un variable. Son type() e isinstance():

• type() recibe como parámetro un objeto y te devuelve el


tipo del mismo.

• isinstance() recibe dos parámetros: un objeto y un tipo.


Devuelve True si el objeto es del tipo que se pasa como
parámetro y False en caso contrario

Ahora te voy a presentar dos funciones para que puedas jugar con todo
lo que hemos visto en este tutorial. Son type() e isinstance():
• type() recibe como parámetro un objeto y te devuelve el tipo del
mismo.
• isinstance() recibe dos parámetros: un objeto y un tipo.
Devuelve True si el objeto es del tipo que se pasa como parámetro
y False en caso contrario.
52
Subtema 4:

Variables

53
Tema: Generalidades

Variables
Las variables son fundamentales ya que permiten definir nombres para los valores que tenemos en memoria y que
vamos a usar en nuestro programa.

En Python existen una serie de reglas para los nombres de variables:

1. Sólo pueden contener los siguientes caracteres:


• Letras minúsculas.
• Letras mayúsculas.
• Dígitos.
• Guiones bajos (_).
2. Deben empezar con una letra o un guión bajo, nunca con un dígito.
3. No pueden ser una palabra reservada del lenguaje («keywords»).
54
Tema: Generalidades

Variables
Ejemplos de nombres de variables:

55
Tema: Generalidades

Variables – Asignación
En Python se usa el símbolo = para asignar un valor a una variable:

Hay que diferenciar la asignación en Python con la igualación en matemáticas. El símbolo = lo hemos aprendido desde
siempre como una equivalencia entre dos expresiones algebraicas, sin embargo en Python nos indica una sentencia de
asignación, del valor (en la derecha) al nombre (en la izquierda).

56
Tema: Generalidades

Constantes
Un caso especial y que vale la pena destacar son las
constantes.

Podríamos decir que es un tipo de variable pero que su valor


no cambia a lo largo de nuestro programa.

Por ejemplo la velocidad de la luz. Sabemos que su valor es


constante de 300.000 km/s.

En el caso de las constantes utilizamos mayúsculas (incluyendo


guiones bajos si es necesario) para nombrarlas.

Para la velocidad de la luz nuestra constante se podría llamar:


LIGHT_SPEED.

57
Tema: Generalidades

Mutabilidad
Las variables son nombres, no lugares. Detrás de esta frase se
esconde la reflexión de que cuando asignamos un valor a una
variable, lo que realmente está ocurriendo es que se hace
apuntar el nombre de la variable a una zona de memoria en el
que se representa el objeto (con su valor).

Si realizamos la asignación de una variable a un valor lo que


está ocurriendo es que el nombre de la variable es una
referencia al valor, no el valor en sí mismo:

58
Tema: Generalidades

Mutabilidad
Si ahora «copiamos» el valor de a en otra variable b se podría
esperar que hubiera otro espacio en memoria para dicho valor,
pero como ya hemos dicho, son referencias a memoria:

La función id() nos permite conocer la dirección de memoria de un objeto


en Python. A través de ella podemos comprobar que los dos objetos que
hemos creado «apuntan» a la misma zona de memoria:

59
Subtema 5:

Operadores

60
Tema: Generalidades

Operadores
Los operadores son símbolos reservados por el propio lenguaje
que se utilizan para llevar a cabo operaciones sobre uno, dos o
más elementos llamados operandos. Los operandos pueden ser
variables, literales, el valor devuelto por una expresión o el
valor devuelto por una función.

El ejemplo más típico que siempre viene a la mente es el


operador suma, +, que se utiliza para obtener la suma
aritmética de dos valores:

61
Tema: Generalidades

Operadores – Concatenación de Cadenas


Una de las operaciones más básicas cuando se trabaja con cadenas de caracteres es
la concatenación.

Esto consiste en unir dos cadenas en una sola, siendo el resultado un nuevo string.

La forma más simple de concatenar dos cadenas en Python es utilizando el operador


de concatenación +:

62
Tema: Generalidades

Operadores – Lógicos Booleanos


A la hora de operar con valores booleanos, tenemos a nuestra disposición los
operadores and, or y not.

A continuación te muestro cómo funcionan los operadores booleanos (en orden de


preferencia ascendente):

63
Tema: Generalidades

Operadores – Comparación
Los operadores de comparación se utilizan, como su nombre indica, para comparar
dos o más valores. El resultado de estos operadores siempre es True o False.

64
Tema: Generalidades

Operadores – Aritméticos
En cuanto a los operadores aritméticos, estos permiten
realizar las diferentes operaciones aritméticas del
álgebra: suma, resta, producto, división, …

Estos operadores Python son de los más utilizados. El


listado completo es el siguiente:

65
Tema: Generalidades

Operadores – Asignación
El operador de asignación se utiliza para asignar un
valor a una variable. Como te he mencionado en otras
secciones, este operador es el signo =.

Además del operador de asignación, existen otros


operadores de asignación compuestos que realizan una
operación básica sobre la variable a la que se le asigna
el valor.

Por ejemplo, x += 1 es lo mismo que x = x + 1. Los


operadores compuestos realizan la operación que hay
antes del signo igual, tomando como operandos la
propia variable y el valor a la derecha del signo igual.

A continuación, aparece la lista de todos los operadores


de asignación compuestos:
66
Tema: Generalidades

Operadores – Pertenencia
Los operadores de pertenencia se utilizan para
comprobar si un valor o variable se encuentran en una
secuencia (list, tuple, dict, set o str).

67
Tema: Generalidades

Operadores – Identidad
Los operadores de identidad se utilizan para comprobar
si dos variables son, o no, el mismo objeto.

68
Subtema 6:

Estructuras de Control

69
Tema: Generalidades

Estructuras de Control
Una estructura de control, es un bloque de código que
permite agrupar instrucciones de manera controlada.

Existen dos tipos de estructuras de control:

1. Estructura de control secuencial.


2. Estructuras de control condicionales.
3. Estructuras de control iterativas.

70
Tema: Generalidades

Identación
Para hablar de estructuras de control de flujo en
Python, es imprescindible primero, hablar de
identación.

¿Qué es la identación?
En un lenguaje informático, la identación es lo que la
sangría al lenguaje humano escrito (a nivel formal). Así
como para el lenguaje formal, cuando uno redacta una
carta, debe respetar ciertas sangrías, los lenguajes
informáticos, requieren una identación.

No todos los lenguajes de programación, necesitan de


una identación, aunque sí, se estila implementarla, a fin
de otorgar mayor legibilidad al código fuente. Pero en
el caso de Python, la identación es obligatoria, ya que
de ella, dependerá su estructura.
71
Tema: Generalidades

Encoding
El encoding (o codificación) es otro de los elementos
del lenguaje que no puede omitirse a la hora de hablar
de estructuras de control.

utf-8 podría ser cualquier codificación de caracteres. Si no se


indica una codificación de caracteres, Python podría producir un
error si encontrara caracteres extraños:

72
Tema: Generalidades

Asignación Múltiple
Otra de las ventajas que Python nos provee, es la de poder
asignar en una sola instrucción, múltiples variables:

En una sola instrucción, estamos declarando tres


variables: a, b y c y asignándoles un valor concreto a cada una:

73
Tema: Generalidades

Estructuras Condicionales
Las estructuras de control condicionales, son aquellas que nos
permiten evaluar si una o más condiciones se cumplen, para decir
qué acción vamos a ejecutar.

La evaluación de condiciones, solo puede arrojar 1 de 2


resultados: verdadero o falso (True o False).

En la vida diaria, actuamos de acuerdo a la evaluación de


condiciones, de manera mucho más frecuente de lo que en
realidad creemos:

Si el semáforo está en verde, cruzar la calle. Si no, esperar a


que el semáforo se ponga en verde.

A veces, también evaluamos más de una condición para


ejecutar una determinada acción: Si llega la factura de la luz y
tengo dinero, pagar el comprobante.
74
Tema: Generalidades

Estructuras Condicionales
Para describir la evaluación a realizar sobre una condición, se
utilizan operadores:

• Relacionales (o de comparación):
• Lógicos.

Las estructuras de control de flujo condicionales, se definen


mediante el uso de tres palabras claves reservadas, del
lenguaje: if (si), elif (sino, si) y else (sino).

75
Tema: Generalidades

Estructuras Iterativas
A diferencia de las estructuras de control condicionales, las
iterativas (también llamadas cíclicas o bucles), nos permiten
ejecutar un mismo código, de manera repetida, mientras se
cumpla una condición.

En Python se dispone de dos estructuras cíclicas:

1. El bucle while.
2. El bucle for.

76
Tema: Generalidades

Bucle While
Este bucle, se encarga de ejecutar una misma acción "mientras
que" una determinada condición se cumpla.

77
Tema: Generalidades

Bucle For
El bucle for, en Python, es aquel que nos permitirá iterar sobre
una variable compleja, del tipo lista o tupla:

78
De interés:

Lectura

79
Estructuras
Repetitivas en
Python: while
Por ejemplo:
Codifique un programa el cubo de 1 es la suma del primer impar (1), el
que implemente el cubo de 2, es la suma de los dos siguientes
impares (3 + 5),
método de Nicómaco. el cubo de 3 es la suma de los tres siguientes (7+9
+11)
y así sucesivamente.
Nicómaco, hace miles de
años descubrió que podía
calcular los cubos de los
números naturales,
sumando números
impares.

Jiménez, H., Angarita, R., & Luque, C. J. (2007). Del


número 1 al teorema de Nicómaco. Programación 81
Suma = 0 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 16…
Suma = Suma + impar impar 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31…
Se suman sólo los
impares generados,
i indica la cantidad conta2 conta2 conta2 conta2 conta2
de impares a
suma vuelve a cero generar y va en conta2 genera sólo la cantidad
en la siguiente secuencia
iteración conta i 1, 2, 3, 4, 5, de impares i desde el anterior
valor impar

n
El cubo de 1 es 1
El cubo de 2 es 8
conta El cubo de 3 es 27
El cubo de 4 es 64
El cubo de 5 es 125

Programación 82
a Las estructuras repetitivas,
en especial while controlado
por contador, tienen tres
b componentes:
a) La variable que controla
el bucle, inicializada
b) La condición para detenerse
(el buble regresa o itera
por verdadero)
c c) El incremento o decremento

Se suman sólo los i indica la cantidad conta2 genera sólo la cantidad


impares generados, de impares a de impares i desde el anterior
suma vuelve a cero generar y va en valor impar
en la siguiente secuencia
iteración conta

Los contadores empiezan en cero para que


sea acorde a la generación de uno o más
números al entrar al ciclo.

Programación 83
Las estructuras repetitivas,
en especial while controlado
por contador, tienen tres
componentes:
a
a) La variable que controla
el bucle, inicializada
b b) La condición para detenerse
(el buble regresa o itera
por verdadero)
c c) El incremento o decremento

Se suman sólo los i indica la cantidad conta2 genera sólo la cantidad


impares generados, de impares a de impares i desde el anterior
suma vuelve a cero generar y va en valor impar
en la siguiente secuencia
iteración conta

Los contadores empiezan en cero para que


sea acorde a la generación de uno o más
números al entrar al ciclo.

Programación 84
Estructuras
Repetitivas en
Python: for
Con el uso del lazo
for, el contador
empieza en cero
dentro del rango a
iterar.

Programación 86
Con el uso del lazo
for, el contador
empieza en cero
dentro del rango a
iterar.

Programación 87
De interés:

Ejercicios

88
range(n) devuelve una lista de enteros empezando por 0 y terminando en n – 1.
range(comienzo, fin) devuelve la lista de enteros entre comienzo y fin, sin incluir a este último.
range(comienzo, fin, paso) igual que el caso anterior, únicamente que entre comienzo y el próximo elemento existirá
una diferencia de paso, y así sucesivamente con el próximo elemento.

Programación 89
Programación 90
Programación 91
Programación 92
Programación 93
?

Programación 94
Subtema 7:

Funciones

95
Tema: Funciones

Introducción a las Funciones


Una función te permite definir un bloque de
código reutilizable que se puede ejecutar
muchas veces dentro de un programa.

Las funciones te permiten crear soluciones


modulares para problemas complejos.

Si bien Python ya proporciona muchas


funciones integradas como print() y len(),
también puedes definir tus propias funciones
para usar en tus proyectos.

Una de las grandes ventajas de usar funciones


en tu código es que reduce el número total de
líneas de código en un proyecto.
.
96
Tema: Funciones

Introducción a las Funciones


Las funciones son bloques de código que se pueden reutilizar
simplemente llamando a la función. Esto permite la
reutilización de código simple y elegante sin volver a escribir
explícitamente secciones de código.

Esto hace que el código sea más legible, facilita la depuración


y limita los errores de escritura. Las funciones en Python se
crean usando la palabra clave def, seguida de un nombre de
función y parámetros de función entre paréntesis.

Una función siempre devuelve un valor. La función utiliza la


palabra clave return para devolver un valor; si no desea
devolver ningún valor, se devolverá el valor
predeterminado None.

El nombre de la función se usa para llamar a la función,


pasando los parámetros necesarios entre paréntesis.
97
Tema: Funciones

Como llamar una Función


Una sentencia de definición de función no ejecuta la función.

La ejecución (llamada) de una función se realiza utilizando el


nombre de la función seguido de paréntesis que encierran los
argumentos requeridos (si los hay).

La ejecución de una función introduce una nueva tabla de


símbolos utilizada para las variables locales de la función. Más
precisamente, todas las asignaciones de variables en una
función almacenan el valor en la tabla de símbolos local;
mientras que las referencias de variables primero buscan en
la tabla de símbolos local, luego en las tablas de símbolos
locales de las funciones adjuntas, luego en la tabla de
Por lo tanto, a las variables globales no se les puede asignar símbolos global y finalmente en la tabla de nombres
directamente un valor dentro de una función (a menos que se incorporados.
mencionen en una declaración global), aunque se puede
hacer referencia a ellas.
98
Tema: Funciones

Introducción a las Funciones


Los parámetros actuales (argumentos) para una llamada de función se introducen en la tabla de símbolos local de la función
llamada cuando se llama; por lo tanto, los argumentos se pasan usando la llamada por valor (donde el valor es siempre una
referencia de objeto, no el valor del objeto). Cuando una función llama a otra función, se crea una nueva tabla de símbolos
local para esa llamada.

99
Referencias:
▪ S. Chazallet, Python 3 – Los fundamentos del lenguaje, Ediciones ENI, 2020.
▪ M. Lutz, Learning Python, Fifth Edition, 2013.
▪ A. Cuevas A., Aplicaciones Graficas con Python 3, Ra-Ma, 2018.
▪ M. Pligrim, Dive Into Python 3, Apress, 2001.
▪ D. Beazley, B. K. Jones; Python Cookbook, O’ Reilly, 2013
▪ Llerena Izquierdo, J. (2020). Codifica en Python.

REVISA INFORMACIÓN ADICIONAL EN:


http://www.ups.edu.ec/web/guest/bibliotecas
http://aleph.ups.edu.ec/F?func=find-b-0
http://www.ups.edu.ec/web/guest/base-de-datos-bibliotecas 100
Referencias:
▪ A. Aguilar Marquez, Matemáticas Simplificadas, Pearson, 2009.
▪ A. K. Maini, Digital electronics: principles, devices and applications, John Wiley & Sons, 2007.
▪ Li, W. N., Reddy, S. M., & Sahni, S. K. On path selection in combinational logic circuits. IEEE Transactions on Computer-
Aided Design of Integrated Circuits and Systems, 8(1), 56-63, 1989
▪ S. K. Sarkar, A. K. De, S. and Sarkar, Foundation of Digital Electronics and Logic Design, Pan Stanford Publishing, 2015.
▪ J.R. Tocci, N. Widmer, G. Moss, Sistemas digitales: principios y aplicaciones, Pearson Educación, 2007.
▪ J. E. Whitesitt, Boolean algebra and its applications, Dover Publications Inc., 2010.
▪ L. Joyanes Aguilar; Fundamentos generales de programación; Editorial McGraw Hill, 5ta Edición; Madrid 2013.
▪ R. Martínez Fernández; Programación en C: Ejercicios; Editorial UPM, 1ra redición; Madrid 2014.
▪ D. Abbott; Linux for embedded and real time aplications; Editorial Newnes, 3ra edition; 2013.

REVISA INFORMACIÓN ADICIONAL EN:


http://www.ups.edu.ec/web/guest/bibliotecas
http://aleph.ups.edu.ec/F?func=find-b-0
http://www.ups.edu.ec/web/guest/base-de-datos-bibliotecas 101
Referencias:

▪ Llerena-Izquierdo, J. (2022). Virtual Classroom Design Model and Its Relation to Student Motivation and
Performance in a Moodle Learning Environment During the Emergency of COVID-19. In Doctoral Symposium on
Information and Communication Technologies-DSICT (pp. 21-32). Springer, Cham.
▪ Izquierdo, J. L., & Carabajo, R. A. (2021). Integración de medios educativos digitales para la enseñanza-
aprendizaje interactiva de asignaturas básicas de carreras de Ingeniería. In La educación en Red. Realidades
diversas, horizontes comunes. XVII Congreso Nacional y IX Iberoamericano de Pedagogía: Santiago de
Compostela 7-9 de julio de 2021. Libro de resúmenes (pp. 1173-1174). Universidade de Santiago de Compostela.
▪ Llerena-Izquierdo, J., Barcia-Ayala, O., & Ayala-Carabajo, R. (2020, October). Faculty training through
crowdlearning for emerging online education. In 2020 IEEE ANDESCON (pp. 1-7). IEEE.
▪ López-Chila, R., Llerena-Izquierdo, J., & Sumba-Nacipucha, N. (2020, June). Collaborative work in the
development of assessments on a moodle learning platform with examview. In International Conference on
Innovation and Research (pp. 131-141). Springer, Cham.

102
Gracias por su atención

www.ups.edu.ec

You might also like