02 - Variables y Tipos de Datos
02 - Variables y Tipos de Datos
Fundamentos de
Programación
Numéricos
Lógicos
Cadenas
de
caracteres
Datos Numéricos
>>> type(-4)
>>> type('2017')
type()
>>> int(3.9999)
>>> int(-3.999)
>>> int("2345")
>>> int(17)
>>> float("123.45")
>>> str(17)
>>> str(123.45)
Conversiones entre tipos de datos
int str float boolean
int -
str -
float -
boolean -
2.2 Definición asignación y
operaciones con variables
Creación y Asignación de Variables
• La creación de variables se realiza a través de la asignación de
un valor a la misma.
• El operador de asignación en Python es el “=“.
x = 100
✔ 100 = x
✖
De derecha a izquierda De izquierda a derecha
TIP:
Una variable es un valor que puede cambiar a lo largo de la ejecución de nuestro algoritmo
Asignación (=)
>>> x = 15 x 225
15
>>> y = 25
y
>>> x = 100 25
>>> y = 225 100
TIP:
Se puede cambiar el valor de una variable en una instrucción posterior
Otras Asignaciones
• Asignación en la misma línea:
x = 5; y = 9; z = 12
• Asignación múltiple:
day, month, year = “miércoles”,”mayo”, 2016
• Asignación de intercambio:
base = 15; altura = 30
base, altura = altura, base
Nombre de
Variables
Nombre de Variables
✔
C saldo
1numero numero1
2numero numero2
✖
caso-1 caso_1
caso-2 caso_2
input entrada
TIP:
Las variables son Caption Sensibles (ej. Nombre != nombre )
Palabras reservadas
Palabra
clave/reservada
Debugging
• Ejecute los siguientes ejemplos de código:
#Sume 2 números y divídalos para 2
num1 = ‘6‘
2num = 10
Sum = num1 + 2num
print(sum)
# Calcule el valor a cancelar por una deuda de $2000, considerando IVA del 14%.
Imprima el valor a cancelar.
deuda = 2000
0.14 = iva
valor_cancelar = deuda + iva
print(“valor_cancelar”)
Operadores en Python
• a=2; (a+2)3
!"#
• a=4; b=3;
$%&
Consola de Python
>>> a=2; (a+2)**3
• Verificar que el valor de x sea menor que 5 y que el valor de t sea mayor que 2.
Consola de Python
>>> x <= 5
a = 8
Símbolo Ejemplo Equivalente a Ejemplo
+= a+=5 a=a+5 13
-= a-=5 a=a-5 8
*= a*=5 a=a*5 40
x = 1 + 2 * 3 - 4 / 5 ** 6
Paréntesis
Potencia
X = 6.999744 Multiplicación y división
Suma y resta
Operadores de igual precedencia se
evalúan de derecha a izquierda
2.3 Manejo de Entrada y Salida
Entrada (input)
• Hay una función integrada en Python para obtener la entrada (input) del usuario.
Comentarios #
TIP:
Todo dato ingresado por el usuario será considerado por Python como un string.
Salida (print)
• Hay una función integrada en Python para obtener la imprimir en consola el valor
de las variables.
#comentario de entrada de datos
nombre = input(“Ingrese su nombre: ”)
print(“Hola ”, nombre, “, saludos.” )
• Algoritmo:
1. Ingresar el radio
2. Calcular el área
3. Imprimir el valor del área
Consola de Python
respuesta = input(“¿Cuál es su radio?”)
area = 3.14159 * respuesta**2
print("El area es %.2f” %area)
Consola de Python
respuesta = input(“¿Cuál es su radio?”)
r = float(respuesta)
area = 3.14159 * r**2
print("El area es %.2f” %area)
Resumen: Operaciones tipos de datos
numéricos Operación Descripición
x+y Suma dos valores
x-y Resta dos valores
x*y Multiplica dos valores
x/y División
x // y División entera
x%y Módulo (residuo) de la división
x ** y Potencia de un valor
-x Negativo de un valor
+x Positivo de un valor
abs(x) Retorna el valor absoluto de un valor
int(x) Retorna la parte entera de un valor
long(x) Convierte un valor a tipo long
float(x) Converte un valor a tipo float
type(x) Retorna el tipo de dato de un valor
Formato de Salida
• El operador "%" es usado para dar formato y fijar las variables. Esto
se hace especificando una cadena con formato, la cual contiene el
texto normal junto con "argumentos especificados", como los
símbolos especiales "%s", "%d“ y “%f”.
Especificadores de argumento
%s %f %d
• str • float • int
Secuencias de Escape
Secuencia Acción
\\ Muestra el caracter backslash.
\’ Muestra el caracter de comilla simple.
\" Muestra el caracter de comilla doble
\a Sonido de alerta.
\n Nueva línea. Coloca el cursor al inicio de la siguiente línea.
\t Tabulación. Mueve el cursor avanzando en la misma línea.
Formato de Salida
• Digamos que tienes una variable llamada "nombre" con el nombre de usuario y
se desea darle un saludo al usuario.
.format()
Salidas formateadas:
Secuencias de escape
vocal = ’a’
nombre = “Lorena”
enunciado = ‘El banano es el principal producto de exportación en el Ecuador.’
cancion = ’Pero mira como beben los peces en el rio…’
Sumar cadenas de caracteres - concatenar
• Indice
Indexación • cadena[2]
>>> cadena = 'Guayaquil'
>>> cadena[2]
'a'
Obtener un carácter.
>>> cadena[3:6]
'yaq'
• Inicio y fin
Slicing • cadena[2:5]
Obtener una subcadena.
• Resultado???
• La letra en la posición dos (2)
TIP:
Las posiciones empiezan desde 1, los índices desde 0.
Tamaño de una cadena de caracteres
• La función len devuelve el número de caracteres de una cadena:
longitud = len(fruta)
ultima = fruta[longitud-1]
Segmentos de cadenas de caracteres - slices
Ø Dividir la cadena de caracteres s=“Fundamentos”
Code Result Descripción
s[2:5] nda Caracteres en los indices 2,3,4.
s[ :5] Funda Los primero 5 caracteres.
s[5: ] mentos Caracteres desde el índice 5 al final.
s[ -2: ] os Los últimos dos caracteres.
s[ : ] Fundamentos Toda la cadena de caracteres.
s[ 1 : 7 : 2] udm Caracteres desde el índice 1 al 6, step 2.
s[ : : -1] sotnemadnuF Un step negativo muestra al revese el string.
TIP:
Hay que tener cuidado con salirse del rango de una cadena
Ejemplo
• url = ‘www.espol.edu.ec’
• url1 = ‘www.uchile.edu.cl’
• url2 = ‘www.unam.edu.mx’
TIP:
Las Cadenas de Caracteres (str) son INMUTABLES.
Búsqueda- in
• Para buscar una subcadena (o un caracter) en una cadena, solamente
necesitamos saber si una cadena contiene cierto caracter o cierta subcadena.
• Usando el operador in
Ejemplos:
cadena2 = cadena.lower()
pal2 = pal1.count()
num = palabra.index(‘a’)
Búsqueda - index
• Para buscar una subcadena (o un caracter) en una cadena, solamente necesitamos
saber si una cadena contiene cierto caracter o cierta subcadena.
• Usando la función index()
Funciones de Strings
Búsqueda - find
• Para buscar una subcadena (o un caracter) en una cadena, solamente
necesitamos saber si una cadena contiene cierto caracter o cierta subcadena.
• Usando la función find()
Funciones de Strings
Funciones de Python (aplicadas a str)
Funciones de Strings
Formato
• Convertir una cadena a minúsculas
• Método: lower()
• Retorna: una copia de la cadena en minúsculas.
Funciones de Strings
Formato
• Convertir una cadena a mayúsculas
• Método: upper()
• Retorna: una copia de la cadena en mayúsculas.
Funciones de Strings
Formato
• Convertir mayúsculas a minúsculas y viceversa
• Método: swapcase()
• Retorna: una copia de la cadena convertidas las mayúsculas en minúsculas y viceversa.
Funciones de Strings
Formato
• Convertir una cadena en Formato Título
• Método: title()
• Retorna: una copia de la cadena convertida.
Funciones de Strings
Funciones con cadenas de caracteres
Función Descripción
str.count() Retorna el número de ocurrencias de una subcadena dentro
de una cadena de caracteres.
Funciones de Strings
Funciones con cadenas de caracteres
Función Descripción
str.isalnum() Retorna True si la cadena es alfanumérica, caso contrario retorna False
str.islower() Retorna True si la cadena contiene solo minúsculas, caso contrario retorna
False
str.isupper() Retorna True si la cadena contiene solo mayúsculas, caso contrario retorna
False
Funciones de Strings
FUNCIONES CADENAS DE CARACTERES
Función Descripción
lower() Devuelve un string con todos sus caracteres en minúsculas.
upper() Devuelve un string con todos sus caracteres en mayúsculas.
replace(x,y) Devuelve un string con cada ocurrencia de x reemplazada por y.
count(x) Cuenta el número de ocurrencias de x en un string.
index(x) Devuleve la ubicación de la primera ocurrencia de x.
isalpha() Devuelve True si cada carácter del string es una letra.
a,b=split(x) Divide la cadena en N variables de acuerdo al carácter x
a,b=rsplit(x) Divide la cadena en N variables de acuerdo al carácter x (reverse)
Funciones de Strings
Eliminar caracteres a la izquierda y derecha de una
cadena
• Función: strip(["caracter"])
• Retorna: la cadena sustituida.
Funciones de Strings
Reemplazar texto
• En Python esto lo hacemos con el método replace
• Función: replace("subcadena a buscar", "subcadena por la cual reemplazar")
• Retorna: la cadena reemplazada.
Funciones de Strings
Aleatoriedad
Aleatoreidad
• Hasta ahora hemos seleccionado valores que el usuario ingresa o
valores predeterminados en nuestros programas
• x=7
• n_intentos = 3
• Sería interesante si cada vez que corremos nuestro programa
podamos elegir un número aleatorio
random()
• Para utilizar numeros aleatorios en nuestro programa, necesitamos
seguir los siguientes pasos:
1. Importar el módulo random
2. Utilizar la función del módulo random para generar el número aleatorio
TIP:
El “aleatorio” de Python se basa en una fórmula, es decir que NO es realmente aleatorio
random()
import random
num = random.randint(1,10)
2. Mostrar el ganador:
• Piedra le gana a tijera
• Tijera le gana a papel
• Papel le gana a piedra
Range (a,b,c)
• Función que te devuelve una lista de números entre a y b sin incluir b con un step de c.
• Los valores de a y c pueden ser omitidos, colocando por defecto a = 0 y c = 1
• Escriba un programa que pida una cadena de caracteres. El programa deberá mostrar por
pantalla lo siguiente:
Ø El número total de caracteres
Ø La cadena repetida 5 veces separada por un enter
Ø Los tres primeros caracteres de la cadena
Ø Los tres últimos caracteres de la cadena
Ø La cadena escrito al reves (Hola à aloH)
Ø La cadena en mayúsculas
Ø La cadena con cada letra “a” remplazada por una “e”
Ejercicios
Ø Escriba un programa que pida una cadena de caracteres de 6 letras, luego
muestre cada letra de la cadena escrita doble en mayúsculas y separada por
un guióm. Por ejemplo: s=‘Helado’
HH-EE-LL-AA-DD-OO
Ø Escriba un programa en el que pida 3 cadenas de caracteres: una materia, un
adjetivo y una actividad. Deberámostrar por pantalla el siguiente párrafo con
el siguiente formato (Utilizar un sólo print). Por ejemplo:
Ejercicios
Ø Escriba un programa que pida por teclado la hora en formato hh:mm:ss y convierta todo a
segundos.
Ø Escriba un programa que pida por teclado los segundos (mas de 3600) y muestre por pantalla
la hora en formato hh:mm:ss
Ø Escriba un programa en el que genere un número aleatorio entre 1 y 50 y otro número
aletorio entre 2 y 5. Muestre ambos números y la multiplicación de ellos
Ø Escriba un programa que genere un número decimal entre 1 y 25 y muestre por pantalla
dicho número con 2 decimales.
Ø En cálculo la derivada de x^4 es 4x^3, la derivada de x^5 es 5x^4. Escriba un programa que
permita el ingreso de una ecuación y muestre por pantalla la derivada de la misma.
IMPORT MATH
http://www.pythonschool.net/basics/string-operation-and-math-unit-exercises/
2.5 Operaciones con Listas
COLECCIONES
• Una colección es un Zpo de dato que agrupa
varios elementos en una misma unidad. Se
uZlizan para almacenar, recuperar,
manipular y comunicar una agregación de
datos.
² Fuente: h^ps://www.iconfinder.com
COLECCIONES
ü Listas de amigos
ü Listas de clientes
ü Listas de compras
ü Listas de cosas que hacer
Convirtiendo los datos a una lista Python
1) Convertir cada uno de los nombres a string ubicando las comillas al inicio
y al final (en el caso de cadenas de caracteres). Si se trata de tipos enteros
o float, agregarlos directamente.
2) Separar cada elemento de la lista con una coma.
3) Encerrar la lista de elementos con corchetes [ ].
4) Asignar la lista a una variable usando el operador de asignación ( = )
Listas
TIP:
Al declarar las variables en Python NO se necesita especificar su tipo.
Operaciones con Listas
Funciones de Python (aplicadas a listas)
>>> print(películas[1])
Avengers
Accediendo a los elementos
>>> frutas= ["manzana", 'pera', 'uva', "durazno"]
>>> frutas
['manzana', 'pera', 'uva', 'durazno']
>>> frutas[5-8]
'pera'
>>> frutas[1.0]
Traceback (most recent call last): File "<pyshell#45>", line 1,
in <module> cast[1.0]
TypeError: list indices must be integers or slices, not float
SLICING LISTAS
>>> pares = [0,2,4,6,8]
• Índice positivo [índice]: >>> pares[-1]
• Desde cero hasta el parámetro -1. 8
• Número entero >>> pares[1] = 9
• “Indice -1” ultimo ítem. >>> pares
[0,9,4,6,8]
>>> pares[1:3]
• Slicing:
[2, 4]
[ínicio : fin-1] >>> pares[:2]
[0, 2]
>>> pares[3:]
[6, 8]
>>> pares[:]
[0, 2, 4, 6, 8]
Recuerde que no puede crear un nuevo elemento de esta manera, es decir, asignar un nuevo valor a un elemento no
existente.
Búsqueda: lista.index(x)
§ Devuelve el índice en la lista del primer item con valor igual a x. Si
no encuentra devuelve error.
lista.count(x)
§ Devuelve el número de veces que el elemento x está en la lista.
Pertenencia de elementos en una lista
Para evaluar si un elemento pertenece a una lista
u4lizamos los operadores booleanos in and not
in.
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = a+b
>>> c
[1, 2, 3, 4, 5, 6]
Añadir elementos
>>> x = []
>>> x = x + ['uno']
>>> x
['uno']
>>> x = x + ['dos']
>>> x['uno', 'dos']
Añadir elementos
>>> i=20
>>> x=x+i
TypeError: can only concatenate list (not
"int") to list
Multiplicación de listas
El operador * repite la lista dado un número de
veces
>>> [0] * 4
[0, 0, 0, 0]
>>> [1, 2, 3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
Mutabilidad: asignación de items
Las listas son mutables, lo que significa que
podemos cambiar sus elementos.
>>> a = [1, 2, 3]
>>> b = a
>>> a[1] = 'cambio’
>>> a
[1, 'cambio', 3]
>>> b
[1, 'cambio', 3]
Aliasing
Clonar una lista
>>> a = [1, 2, 3]
>>> b = a[:]
>>> b[1, 2, 3]
>>> a[1] = 'cambio'
>>> a
[1, 'cambio', 3]
>>> b
[1, 2, 3]
Escribir un programa que retorne el menor
valor de una lista
lista = [ 6., 8. , 9.3, 2., 4.0, 1.3 ]
menor = float('inf')
for val in lista:
if val
_____________:
< menor
_____________
menor = val
print('El menor de la lista es: ', menor)
Escribir un programa que retorne el mayor
valor de una lista
lista = [ 6., 8. , 9.3, 2., 4.0, 1.3 ]
mayor = float(’-inf')
for val in lista:
if val
_____________:
> mayor
_____________
mayor = val
print('El mayor de la lista es: ', mayor)
Escribir un programa que cuente las
ocurrencias de un elemento
l = [1,2,3,2,2,1,3,4,2,6,4,5]
num_buscar=2
contador=0
for elemento in l:
if elemento == num_buscar:
contador+=1
print(“El número %d se repite %d veces” % (num_buscar,contador))
Escribir un programa que retorne el índice de
la primera ocurrencia de un elemento
lista_sample = [1,2,3,2,2,1,3,4,2,6,4,5]
print (lista_sample)
val = 6
print ("Indice:", lista_sample.index(val))
val = 10
print ("Indice:", lista_sample.index(val))
Escribir un programa que retorne el índice de
la primera ocurrencia de un elemento
lista_sample = [1,2,3,2,2,1,3,4,2,6,4,5]
print (lista_sample)
val = 10
if val in lista_sample:
print ("Indice:", lista_sample.index(val))
else:
print(“Valor no está en la lista”)
Métodos de las listas
retornan un valor y no cambian la lista
Método Descripción
lista.count(value) Retorna el numero de
ocurrencias del elemento
lista.index(value) Retorna el índice donde el
valor aparece por primera
vez
lista.index(value, start) Retorna el índice donde el
valor aparece por primera
vez, dependiendo de una
posición de inicio.
Métodos de las listas
retornan una lista y no cambian la lista
Método Descripción
lista.copy( ) Crea una lista con los
mismos elementos.
Métodos de las listas
cambian la lista y no retornan valor
Método Descripción
lista.append(value) Añade un valor a la lista
lista.remove(value) Elimina un valor de la lista
lista.insert(index, value) Añade un valor en un índice determinado.
lista. reverse() Cambia la lista a un orden inverso
lista. sort() Ordena la lista (de menor a mayor)
lista.clear( ) Borra todos los elementos de la lista
Métodos de las listas
cambian la lista y retorna un valor
Método Descripción
lista.pop() Retorna el último valor de la
lista y lo elimina.
lista.pop( index ) Retorna el valor que se
encuentra en el índice y lo
elimina de la lista.
Escribir un programa que elimine los
elementos repetidos de una lista
Manejo de Strings como Listas
Strings
Una cadena de caracteres o string es una
secuencia (lista) de caracteres que usualmente
contiene texto.
Creación:
cadena = “hola mundo”
cadena = ‘hola mundo’
cadena = ‘’
cadena = “ ”
Strings
Una cadena de caracteres o string es una
secuencia (lista) de caracteres que usualmente
contiene texto.
Dividir la cadena:
cadena = “hola mundo”
cadena.split(‘ ’)
cadena.split(‘r’)
Strings
Una cadena de caracteres o string es una
secuencia (lista) de caracteres que usualmente
contiene texto.
Diseñe una “calculadora Pokémon” la cual, dada una lista con los nombres de los
especímenes, pida al usuario que ingrese los puntos de ataque (PA) y de defensa
(PD) de cada pokemon. Calcule sus puntos de combate (PC) en base a la siguiente
fórmula: CP= (PA+PD)*1.2
pokemons=
[“omanyte”,”blastoise”,”venomoth”,”alakazam”,”vulpix”,”machop”,”rapidash”]
Ejercicio # 5
Escriba un programa que dada la lista a=[2,4,6,8,10] devuelva lo siguiente:
Resumen: LISTAS
Función
Función Descripción
Descripción
len(Lista)
len(Lista) Retorna el número de elementos de la lista.
min(Lista)
min(Lista) Retorna el mínimo de los elementos de la lista.
max(Lista)
max(Lista) Retorna el máximo de los elementos de la lista.
sum(Lista)
sum(Lista) Retorna la suma de los elementos de la lista.
del(Lista)
del(Lista) Elimina la lista.
promedio = sum(L)/len(L)
https://docs.python.org/3.2/library/functions.html#max
Bibliografía
• Rodríguez, Luis. Python Programación Luis Rodríguez, Python
Programación.
• Downey, A., Elkner, J., & Meyers, C. (2012). How to think like a
computer scientist: learning with python. Green Tea Press, Wellesley,
Massachusetts.