Está en la página 1de 25

CCPG1001

Fundamentos de Programación Unidad 2 – Variables y


Tipos de Datos
Esta diapositiva NO es su material de estudio

Contenido
• Operaciones con Cadena de Caracteres
• Introducción a Listas.
• Aleatoriedad
Esta diapositiva NO es su material de estudio

Objetivos
• Utilizar métodos de cadenas para manipular texto y resolver
problemas.
• Construir expresiones numéricas y booleanas que incluyan variables
para el desarrollo de programas sencillos.
• Aplicar funciones para generar números aleatorios y utilizarlos en un
programa.
Esta diapositiva NO es su material de estudio

Índices
• A la expresión entre corchetes [ ] se le llama índice.
• Un índice identifica a un miembro de un conjunto ordenado, en este caso el
conjunto de caracteres de la cadena.
• El índice puede ser cualquier expresión entera.

0 1 2 3 4 5 6 7 8 9 10
cadena = “ F U N D A M E N T O S ”
-11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
Esta diapositiva NO es su material de estudio

Búsqueda
• Usando el operador in #devuelve True o False
• Usando el operador not in #devuelve True o False

• Función .index() #devuelve entero (error si no existe)


#valido para strings y listas

• Función .find() #devuelve entero (-1 si no existe)


#SOLO para strings
Esta diapositiva NO es su material de estudio

Funciones de Cadenas
cadena = “FUNdaMENtos de PROgraMAción”

Funciones Acción Resultado


cadena.capitalize() Convertir a mayúscula la primera letra Fundamentos de programación
cadena.lower() Convertir una cadena a minúsculas fundamentos de programación
cadena.upper() Convertir una cadena a mayúsculas FUNDAMENTOS DE PROGRAMACIÓN
cadena.title() Primera letra de cada palabra en mayúscula Fundamentos De Programación
cadena.replace(“de”,”con”) Reemplaza cadenas encontradas FUNdaMENtos con PROgraMAción
cadena.count(“a”) Cuenta cantidad de veces de la cadena 2
cadena.strip() Elimina espacios/enter antes y después de cadenas FUNdaMENtos con PROgraMAción
cadena.split(“ “) Crea una lista con elementos [“FUNdaMENtos”,”de”,”PROgraMAci
Esta diapositiva NO es su material de estudio

Funciones con cadenas de caracteres


cadena = input(“ingrese su edad: ”)

Función Descripción
cadena.isalnum() Retorna True si la cadena es alfanumérica, caso contrario retorna False

cadena.isalpha() Retorna True si la cadena es alfabética, caso contrario retorna False

cadena.isnumeric() Retorna True si la cadena es un número, caso contrario retorna False


cadena.isdigit()
cadena.isdecimal()
cadena.islower() Retorna True si la cadena contiene solo minúsculas, caso contrario retorna False
cadena.isupper() Retorna True si la cadena contiene solo mayúsculas, caso contrario retorna False
Esta diapositiva NO es su material de estudio

SLICING
cadena = “HOLA MUNDO COMO ESTAS?” → “UNDO”

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
H O L A M U N D O C O M O E S T A S ?
-22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

[ : ]
[ : : ]
Esta diapositiva NO es su material de estudio

0 1 2 3 4 5 6 7 8 9 10

Slicing F U N D A M E N T O S
-11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
Inicio: incluye
➢ Dividir la cadena de caracteres s=“FUNDAMENTOS” [inicio : fin : saltos*] Fin: NO incluye
Saltos: opcional
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
Esta diapositiva NO es su material de estudio

Ejemplo
• url = “www.espol.edu.ec”
• url1 = “www.uchile.edu.cl”
• url2 = “www.unam.edu.mx”

¿Cómo se que URL es de Ecuador, Chile o México?


url[-3:] == “.ec”
Esta diapositiva NO es su material de estudio

Operaciones con Cadena de Caracteres


Esta diapositiva NO es su material de estudio

Operaciones con cadenas de caracteres


Operación Ejemplo Resultado
x in s “dame” in “fundamentos” True
x not in s “dame” not in “fundamentos” False
s+t “funda” + “mentos” “fundamentos”
s * n+n * s “funda”*2 + “mentos”*3 “fundafundamentosmentosmentos” Asumiendo que:
s[i] “fundamentos”[2] “n”
s[i:j] “fundamentos”[2:4] “nd
s[i:j:k] “fundamentos”[1:8:2] “udmn” x,s,t → letra o string
len(s) len(“fundamentos”) 11 i, j, k, n → numero
s.index(x) “fundamentos”.index(“d”) 3
s[ : :-1] “fundamentos”[ : :-1] “sotnemadnuf”
Esta diapositiva NO es su material de estudio

Mutabilidad
• Una cadena de caracteres es inmutable, es decir sus elementos no se pueden
modificar.
• Si se requieren modificaciones, se debe construir una cadena nueva (muchas
veces esto lo hace automáticamente el intérprete de Python).

saludo = "¡Hola todo el mundo!" #ERROR


Traceback (most recent call last):
saludo[2] = 'L' # ¡ERROR!
File "<stdin>", line 1, in <module>
print (saludo) TypeError: 'str' object does not support item
assignment

TIP:
Las Cadenas de Caracteres (str) son INMUTABLES.
Esta diapositiva NO es su material de estudio

Listas [ ]
Esta diapositiva NO es su material de estudio

Listas
▪ Es un tipo de colección ordenada. Pueden contener cualquier tipo de
dato: número, cadenas, booleanos y listas.
▪ Las listas van entre corchetes [ ] y sus elementos separados por comas
▪ Maneja índices y ciertas propiedades al igual que los strings
▪ Las listas SI SON mutables
lst_peliculas = ["Rapidos y Furiosos","Avengers","Spiderman"]

Item 0 Item 1 Item 2

print(lst_peliculas[1])
Esta diapositiva NO es su material de estudio

Listas
▪ Una misma lista puede contener múltiples tipos de dato.

lista = [123,True,"texto",False,3.14,["azul",10]]
L = lista[-1]

print(lista)
print(L)

[123, True, 'texto', False, 3.14, ['azul', 10]]


['azul', 10]
Esta diapositiva NO es su material de estudio

String, int, float, bool TdD


H O L A 1984 3.6 True
0 1 2 3

sueldo

lst_datos =
nombre TdD TdD edad

0 1 2 3
, , ,
Esta diapositiva NO es su material de estudio

Listas NO HACER SPLIT A UNA LISTA!!!

texto = "Rafael Eduardo Rivadeneira Campodonico"


lst_datos = texto.split(" ")

print(texto)
print(lst_datos)

primer_nombre = lst_datos[0]
segundo_apellido = lst_datos[-1]

print(primer_nombre,segundo_apellido)

Rafael Eduardo Rivadeneira Campodonico


['Rafael', 'Eduardo', 'Rivadeneira', 'Campodonico']
Rafael Campodonico
Esta diapositiva NO es su material de estudio

Ejemplo
• Solicitar el ingreso de un nombre completo y crear un nombre de usuario de
correo espol con la primera letra del nombre las 5 primeras del apellido y última
del segundo apellido
nombre_completo = input(“ingrese su nombre completo:”).lower()
• (TODO EN MINUSCULA) lst_nombre = nombre_completo.split(“ “)
primer_nombre = lst_nombre[0]
primer_apellido = lst_nombre[2]
Ej. segundo_apellido = lst_nombre[3]
• nombre = “Rafael Eduardo Rivadeneira Campodonico”
primera_letra= primer_nombre[0]
• → rrivado@espol.edu.ec apellido5 = primer_apellido[:5]
ultima_letra = segundo_apellido[-1]

dominio = “@espol.edu.ec”
correo = primera_letra + apellido5 + ultima_letra + dominio
print(correo)
Esta diapositiva NO es su material de estudio

Aleatoriedad
Esta diapositiva NO es su material de estudio

random()
Para utilizar números aleatorios hay que importar la librería random

import random

#generar números aleatorios del 1 al 10


num1 = random.randint(1,10)

#toma un dato cualquiera de una lista


lst_nombres = [...]
nombre = random.choice(lst_nombres)

TIP:
El “aleatorio” de Python se basa en una fórmula, es decir que NO es realmente aleatorio
Esta diapositiva NO es su material de estudio

Ejemplo (ahorcado)
• Tener una lista con palabras
• Obtener una palabra al azar
• Imprimir “_” según la longitud de la palabra aleatoria
• Solicitar al usuario que ingrese una palabra para tratar de adivinar
• Imprimir True si gana (palabra adivinar == palabra_aleatoria)
Esta diapositiva NO es su material de estudio

Ejercicio
• Escriba un programa que simule el juego de piedra, papel o tijera.
1. Generar dos números aleatorios, esto servirá para guardar las opciones de los dos jugadores.
• Si el número generado es igual a 0, es piedra.
• Si el número generado es igual a 1, es papel.
• Si el número generado es igual a 2, es tijera.

2. Mostrar el ganador:
• Piedra le gana a tijera
• Tijera le gana a papel
• Papel le gana a piedra
Esta diapositiva NO es su material de estudio

Trabajo
• Revisar AulaVirtual
• Integrador01
• Control Lectura (pag. 13-18)
Esta diapositiva NO es su material de estudio

Taller
• Abrir AulaVirtual

También podría gustarte