Professional Documents
Culture Documents
Tema 1: Fundamentos: Asignatura de Programación Unidad 3: Lenguaje de Programación
Tema 1: Fundamentos: Asignatura de Programación Unidad 3: Lenguaje de Programación
Tema 1: Fundamentos
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.
Lenguajes de programación
Todas las máquinas y dispositivos requieren de un
lenguaje de programación para cumplir con sus
funciones.
https://www.youtube.com/watch?v=pWw4UtQhdek
6
Tema: Fundamentos
8
Tema: Fundamentos
Sintaxis
La sintaxis es la estructura de una declaración en un lenguaje de
programación.
9
Tema: Fundamentos
Semántica
Por otro lado, la semántica trata sobre el significado de la
instrucción. Responde a las preguntas:
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.
12
Tema: Fundamentos
13
Tema: Fundamentos
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
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()
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:
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.
¿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
35
Tema: Generalidades
36
Tema: Generalidades
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.
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.
Tipos de Datos
42
Tema: Generalidades
Tipos Numéricos
Python define tres tipos de datos numéricos básicos:
1. Enteros.
3. Números complejos.
43
Tema: Generalidades
44
Tema: Generalidades
45
Tema: Generalidades
47
Tema: Generalidades
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.
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).
51
Tema: Generalidades
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.
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.
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).
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:
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.
61
Tema: Generalidades
Esto consiste en unir dos cadenas en una sola, siendo el resultado un nuevo string.
62
Tema: Generalidades
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, …
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 =.
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.
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.
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.
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:
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.
Estructuras Condicionales
Para describir la evaluación a realizar sobre una condición, se
utilizan operadores:
• Relacionales (o de comparación):
• Lógicos.
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.
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.
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
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
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
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.
▪ 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