Programm Tools Python
Programm Tools Python
1. Fundamentos de programación
1.1 Tipos de datos simples, objetos, variables y
operadores
1. Tipos de datos simples
2. Variables y Expresiones
3. Operaciones
4. Acciones elementales
Pedro Gomis
pedro.gomis@upc.edu
Tipos de datos 2
Entero, int
Real, float
Simple
Booleano, bool
Tipos Carácter, char *
de
datos **
tablas, arrays, string
**
estructura, record
Compuesto Py
Tupla, string
(estático, inmutable)
Py
Lista, diccionario, set
* Tipo de dato carácter no existe en Python
(dinámico, mutable)
** Estructuras compuestas de lenguajes como C, FORTRAN, Pascal, Matlab
Py Estructuras compuestas en Python
Tipos de datos 3
Numéricos:
Enteros. Ejemplos: -4, 0, 25, 1000
Reales. Ejemplos: 1.5, -4.33, 123.0
Caracteres:
Letras, símbolos, dígitos. Ejemplos: 'a','A', 'g', '$', '%',
'1' , '.', '4', '*'
Lógicos o Booleanos:
Valores: falso, verdadero (cierto) (0, 1)
>>> type(7)
<class 'int'>
>>> a = 45
>>> type(a)
<class 'int'>
>>> bin(5)
'0b101'
>>> bin(200)
'0b11001000'
>>> a = 3 > 2
>>> a
True
>>> type(a)
<class 'bool'>
>>> 4 > 5
False
Informática 7
Tipos de datos
Carácter (Character)
• El tipo de dato carácter usado en varios lenguajes de programación es el
elemento escalar o indivisible de los textos usados en informática.
• Los textos se llaman cadena de caracteres (en inglés string). Los caracteres
están ordenados de acuerdo a la tabla ASCII. Los caracteres ASCII
ordenados del valor decimal 20 al 127 son:
Variables
• En matemáticas las variables se usan para representar valores numéricos. Se
utiliza un carácter o texto para representarlas. En cálculo matemático una
función del tipo y = f(x) involucra dos variables, x e y.
• En los lenguajes de programación se requiere normalmente recordar o guardar
los valores numéricos, booleanos o de texto para ser usados una o múltiples
veces en el programa. Las variables tienen este cometido.
• Intuitivamente, podemos pensar que la variable es un lugar en la memoria del
computador en la que se almacena la información que vamos a procesar.
• En los lenguajes como el FORTRAN, C/C++ o Pascal, una variable se considera
un contenedor o lugar dentro de la memoria RAM del computador, con un
nombre asociado (identificador), donde se guarda un valor de un tipo dado.
• Sin embargo, en Python el concepto es algo diferente, pues las variables no
son un lugar de memoria que contienen un valor sino que se asocian, o
refieren, a un lugar de memoria que contiene ese valor.
Informática Variables y acción de asignación 11
Acción de asignación
• La acción de asignación se usa para darle a una variable un valor determinado.
• En Python la acción de asignación de valores a una variable quiere decir que la
variable con su nombre determinado se va a asociar al valor de la derecha de
la asignación:
>>> a = 7
Acción de asignación
• La acción de asignar 7 a la variable a hará que este nombre o identificador se
asocie o refiere a la dirección de memoria del objeto 7, o sea, a tendrá la
misma identidad que 7.
• La función id() devuelve la identidad o lugar de memoria donde se ubica el
objeto.
>>> id(7)
1449917120
>>> a = 7
>>> id(a)
1449917120
>>> b = 7
>>> id(b)
1449917120
>>> c = a
>>> id(c)
1449917120
• Tanto 7, a, b o c son el mismo objeto en Python y ocupan una posición
única de memoria
Informática Variables y acción de asignación 13
Acción de asignación
• Pero ¿qué pasa si usamos el valor 7.0 en lugar de 7?
>>> x = 7.0
>>> id(x)
1722264
>>> type(x)
<class 'float'>
• La variable x estará asociada al objeto 7.0, con identidad 1722264, de tipo float
y valor 7.0.
• Los objetos de datos simples en Python tienen tres características:
valor, tipo e identidad.
• Como se ha notado, las variables no necesitan que sea declarado su tipo antes
de ser usadas, como en Pascal o C. Pueden incluso cambiar de tipo a lo largo
del programa.
>>> x = 7.5
>>> x = 'Hola'
Informática Variables y acción de asignación 14
Acción de asignación
• Para apreciar mejor el concepto de asignación en programación y diferenciarlo
de la simetría del símbolo = en matemáticas, probemos:
>>> 7.0 = x
SyntaxError
>>> x = x + 3
>>> x
10.0
• La sentencia 7.0 = x es un error de sintaxis en programación (válido en
matemáticas)
• x = x + 3 sería absurdo en matemáticas, pero en lenguajes de
programación significa sumarle a la variable x el valor 3 y el resultado de esa
expresión asignarlo luego a la misma variable x.
• Python permite asignaciones múltiples con el uso de tuplas:
>>> x, y, z = 7, 8.2, 9
Informática Variables y acción de asignación 15
Identificadores
• Al nombre de una variable lo llamaremos identificador (identifier).
• Pero los nombres de otros elementos de los programas, como
funciones, clases, librerías también tendrán identificadores.
• Los identificadores en programación pueden contener letras y
números pero deben empezar siempre con una letra o el carácter
guion bajo o subrayado “_”.
• Aunque los matemáticos suelen usar nombres con una sola letra para
las variables, en programación muchas veces es preferible utilizar
identificadores con nombres que se asocien con su significado. Como:
area, volumen, lead_III, lado2.
• Hay que hacer notar también que en la mayoría de los lenguajes,
incluyendo Python, los identificadores son sensibles al tipo de letra
minúscula-mayúscula* . Es decir n y N son variables diferentes.
• Ejemplos de identificadores válidos: n, pepe, p125, max_entero, A, area
• No Válidos: 4abc, dia del mes, area-altura, c+d
* Python permite identificadores con vocales acentuadas, como área. Aunque no es
recomendable esta práctica por si se cambia de lenguaje de programación.
Informática Variables y acción de asignación 17
• Hay que tener cuidado también con las funciones internas o predefinidas
del lenguaje (built-in functions) https://docs.python.org/3.3/library/functions.html
Informática Expresiones y sentencias 18
Expresiones
• Las expresiones son el mecanismo para hacer cálculos.
• Expresiones se componen de combinaciones de valores e identificadores
con operadores.
• Expresiones combinan:
– Variables
– Valores
– Operadores
– Paréntesis
– Nombres de funciones especiales (raíz cuadrada, logaritmo, etc)
• Toda expresión tiene un valor que es el resultado de evaluarla de
izquierda a derecha, tomando en cuenta las precedencias
>>> 1.5*3/2
2.25
>>> 1.2*x + 3 # El valor de x del ejemplo anterior es 10.0
15.0
>>> 3 > (3.1 + 2)/3
True
Informática Expresiones y sentencias 19
Sentencias o instrucciones
• Las sentencias o instrucciones son las unidades básicas de los programas
(llamados también en el argot de los programadores, códigos) que
produce una acción, como asignar un valor a una variable, mostrar un
resultado, etc.
• El intérprete de Python ejecuta cada sentencia produciendo la acción
dada:
>>> y = x/2 + 3 # el valor de x es 10.0
>>> print(y)
8.0
>>> 1.5*3/2
2.25
>>> print(_)
2.25
Informática Operadores 20
• Los operadores son los símbolos que representan las acciones de cálculo.
• Los operadores los podemos clasificar de 3 tipos:
– operadores aritméticos,
– operadores lógicos o booleanos
– operadores relacionales.
Operadores Aritméticos
• Se pueden incluir entre los operadores aritméticos los que operan sobre
un solo operando, llamados unarios:
o operador cambio de signo -
o operador identidad +.
• Ejemplo, -4, +4, --4 equivale a 4
Divide y asigna la
//= a //= b a = a//b
parte entera
not (not A) == A
A and True == A
A and False == False
A or False == A
A or True == True
Leyes de Morgan
Informática Operadores 26
Operadores Relacionales
Matemáticas En Python Significado Ejemplo Resultado
= == Igual a 'a' == 'b' False
≠ != Distinto a 'b' != 'B' True
< < Menor que 7<3 False
> > Mayor que 7>3 True
≤ <= Menor o igual que 7 <= 7 True
≥ >= Mayor o igual que 7 >= 3 True
Informática Operadores 27
• Ejercicio de una expresión que sea cierta cuando, dada una variable car,
ésta sea un símbolo del alfabeto, o falsa cunado no sea:
>>> car = 'q'
>>> (car >= 'a') and (car <= 'z') or (car >= 'A') and (car <= 'Z')
True
>>> # Equivale a
>>> 'a' <= car <= 'z' or 'A' <= car <= 'Z'
True
>>> car = '&'
>>> 'a' <= car <= 'z' or 'A' <= car <= 'Z'
False
Informática Operadores 28
Lectura de datos
• En Python se utiliza la función interna input().
• Se utiliza un mensaje de texto para indicar al usuario del programa qué
tiene que introducir.
• Lo que se teclea y se introduce al programa es un valor de tipo string.
• Por lo que hay que tener en cuenta que si los datos son numéricos habrá
que convertirlos de string a enteros (int) o a reales (float).
>>> Nombre = input('Cómo te llamas? ')
Cómo te llamas? José
>>> type(Nombre)
<class 'str'>
>>> Edad = int(input('Introduce tu edad: '))
Introduce tu edad: 21
>>> type(Edad)
<class 'int'>
>>> Altura = float(input('Cuánto mides? '))
Cuánto mides? 1.78
>>> type(Altura)
<class 'float'>
Informática Acciones elementales 34
>>> int('123')
123
>>> int(27.8)
27
>>> int(-24.9)
-24
>>> str(254)
'254'
>>> str(1/3)
'0.3333333333333333‘
>>> bin(255)
'0b11111111'
>>> bin(256)
'0b100000000'
Informática Acciones elementales 35
Escritura de datos
• En Python se utiliza la función interna print().
• La función print() escribe como string todo su argumento (entrada) como una
secuencia de expresiones separadas por comas o concatenadas.
>>> a = 3.5
>>> b = 15
>>> print('El producto de', a , 'por', b , 'es', a*b)
El producto de 3.5 por 15 es 52.5
>>> print('El producto de '+str(a)+' por '+str(b)+' es '+str(a*b))
El producto de 3.5 por 15 es 52.5
Qué!
A B C
A,B,C
ABC
10:27:59
10----27----59
>>>
Informática Acciones elementales 37
Comentarios
• Es una buena opción comentar en lenguaje natural lo que las
instrucciones del programa están haciendo
Informática Acciones elementales 38
Errores
>>> alumnos = 56
• De ejecución >>> grupos = 0
>>> alum_grupo = alumnos/grupos
Traceback (most recent call last):
File "<pyshell#90>", line 1, in <module>
alum_grupo = alumnos/grupos
ZeroDivisionError: division by zero
>>> base = 4
• Semánticos >>> altura = 2
>>> area = base / altura
>>> print(area)
2.0