0% encontró este documento útil (0 votos)
134 vistas56 páginas

Unidad 2 - String

Este documento presenta los objetivos y contenidos de la unidad 2 de fundamentos de programación sobre variables y tipos de datos. Se explican conceptos como tipos de datos, operadores lógicos y relacionales, conversiones entre tipos de datos, operaciones con cadenas de caracteres y listas, y generación de números aleatorios.

Cargado por

Juan C. Freire
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
134 vistas56 páginas

Unidad 2 - String

Este documento presenta los objetivos y contenidos de la unidad 2 de fundamentos de programación sobre variables y tipos de datos. Se explican conceptos como tipos de datos, operadores lógicos y relacionales, conversiones entre tipos de datos, operaciones con cadenas de caracteres y listas, y generación de números aleatorios.

Cargado por

Juan C. Freire
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 56

CCPG1001

Fundamentos de Programación

Unidad 2 – Variables y Tipos de Datos


Contenido
2.1 Tipos de Datos, Operadores Lógicos y Relacionales.
2.2 Conversiones entre Tipos de Datos y Manejo de Entrada-Salida.
2.3 Operaciones con Cadenas de Caracteres.
2.5 Aleatoridad
2.4 Operaciones con Listas.
Objetivos
• Seleccionar los tipos de datos y los operadores lógicos y relacionales apropiados para
escribir expresiones validas en un lenguaje de programación.
• Utilizar sentencias de entrada y salida de datos con formato para la creación de
programas sencillos.
• Aplicar la precedencia de los operadores, el operador de asignación y su uso, la lógica
usada en las operaciones booleanas y los tipos de datos para escribir expresiones válidas
en un lenguaje de programación.
• Usar funciones de lenguaje de programación para manipular cadenas de caracteres.
• 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.
• Seleccionar los tipos de datos y los operadores lógicos apropiados para escribir
expresiones válidas en un lenguaje de programación
2.7 Cadena de Caracteres
Cadenas de caracteres
• Las cadenas de caracteres es uno de los tipos de datos más populares
en Python.
• Se considera un tipo de dato compuesto porque están hechas de
elementos más pequeños llamados caracteres.
• Se pueden crear utilizando comillas simples o dobles .
Cadenas de Caracteres
>>> 'huevos y pan' # comillas simples
'huevos y pan'
>>> 'doesn \'t' # usa \' para escapar comillas simples... # ...o de lo contrario usa comillas doblas
"doesn't"
>>> "doesn't"
"doesn't"
>>> ' "Si," le dijo.'
'"Si," le dijo.'
>>> " \"Si, \" le dijo."
'"Si," le dijo.'
>>> '"Isn\' t," she said.'
'"Isn\'t," she said.'
Concatenar caracteres
• El proceso de concatenación se realiza mediante el operador de suma (+).

>>> "Un divertido "+"programa "+"de "+ "radio"


'Un divertido programa de radio'
>>>

>>> nombre = "Rocio"


>>> mensaje = "Bienvenido"+" "+nombre
>>> print(mensaje)
Bienvenido Rocio
>>>
Multiplicar una cadena s por un número k

• Repetir una cadenas de caracteneres n veces


>>> 3 * "programas "
'programas programas programas '

>>> "programas " * 3


'programas programas programas '
>>>

>>> mensaje2a = 'Hola ' * 3


>>> mensaje2b = 'Mundo'
>>> print(mensaje2a + mensaje2b)
>>> Hola Hola Hola Mundo
Í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.
Trabajando con partes de una cadena
• El operador corchete [] :

>>> fruta = "banana"


>>> letra = fruta[1]
>>> print(letra)

• Resultado???
• La letra en la posición dos (2) -> a

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:

>>> fruta = "banana"


>>> len(fruta)
6
• Si deseamos retornar la última letra de la cadena de caracteres?
longitud = len(fruta)
ultima = fruta[longitud-1]

longitud = len(fruta)
ultima = fruta[-1]
Segmentos de cadenas de caracteres - slices
• También se puede obtener un subconjunto de la colección de
caracteres. A esto se llama slicing.
• Para ello especificamos un rango para el índices. [start:end:step].
• El start es siempre incluido y el end es siempre excluido.

>>> x= ”programa"
>>> x[2:5]
>>> “ogr”
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

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


url[-2:]

Los dos últimos caracteres de la dirección web determnan el país a la que pertenece la dirección,
así por ejemplo si tenmina en ec es ecuador, mx es mexico, cl es chile, etc
Taller en Clase
• Escribir un programa que pida al usuario una url y el programa
muestre en pantalla el dominio de la url y si la url es de Ecuador (ec),
Chile (cl), Colombia (co) o México (mx).
• A continuación ejemplo de la salida del programa
Ingrese la url a analizar: www.espol.edu.ec
El dominio es: espol.edu.ec
La URL pertence a:
Ecuador: True
Colombia: False
Chile: False
Mexico: False
Solución

url = input("Ingrese la url a analizar:")


#el dominio es todo lo que viene despues de wwww.
print("El dominio es:",url[5:])
print("La URL pertence a:")
#para saber a que pais pertenece debemos obtener los dos ultimos caracteres
# y compararlos con los identificadores de cada pais
print("Ecuador", url[:-2]=="ec")
print("Colombia", url[:-2]=="cl")
print("Chile", url[:-2]=="co")
print("Mexico", url[:-2]=="mx")
Las Cadenas de Caracteres son inmutables
• Los caracteres de una cadena de caracteres no se pueden modificar
mediante una asignación.
• Ejemplo:
• apellido = “mera”
• apellido[3] = “o”
• TypeError: 'str' object does not support item assignment

• Si necesitamos modificar una cadena, lo que debo hacer es crear una


nueva
Ejercicio en Clase
• Usted tiene una variable x que guarda una cadena de caracteres en la
que se cometió un error y el último caracter de la cadena debe ser
reemplazado por “o”.

• Cree un programa que dado el valor de x, actualice el valor de la


variable para corregir el error.
Solución

x = "Anastasia"
print("Valor original",x)
#obtengo todos los caracteres desde el inicio menos el ultimo
#y concadeno la letra o
x = x[:-1]+"o"
print("Valor Corregido",x)
Búsqueda: Operador in
Devuelve un valor de True si la subcadena de caracteres se encuentra en la
cadena, caso contrario retorna False.

subcadena in cadena

Ejemplos

>>> “cool” in “programar es cool”


True
>>> “gana” in “El perdio”
False
>>> “programar es cool” in “cool”
False
Búsqueda: index
• s.index(x)
• Retorna el índice de la primera ocurrencia de la cadena x en la
cadena s.

>>> cadena = "hola”


“ha” no se >>> cadena.index('a')
encuentra en la 3
cadena por lo que >>> cadena.index('ha')
ocurre un error” Traceback (most recent call last):
File "", line 1, in
ValueError: substring not found

Retorna error si la subcadena no existe en la cadena


Búsqueda: find
• s.find(x)
• Retorna el índice de la primera ocurrencia de la cadena x en la
cadena s.
>>> cadena = “hola”
>>> cadena.find('a')
3
>>> cadena.find('ha')
-1
>>> cadena2 = “maria”
1ra ocurrencia >>> cadena2.find(“a”)
1

Retorna -1 si la subcadena no existe en la cadena


Ejercicio
• Escribir un programa que permite determinar si una dirección de
correo electrónica dada pertenece a la ESPOL. Una dirección de
correo electrónico se divide en nombre del usuario y dominio de la
organización.

• El programa debe pedir al usuario el correo electrónico del usuario y


mostrar verdadero si el correo pertenece a la ESPOL, caso contrario
mostrar falso.
Solución

correo = input("ingrese correo")


#encontrar el indice de @
indice = correo.find("@")
print(indice)
#el dominio empieza despues del @
dominio = correo[indice+1:]
print("dominio",dominio)
#el nombre de usuario es todo lo que esta antes del @
usuario = correo[:indice]
print("usuario",usuario)
print("El correo es la espol",dominio=="espol.edu.ec")
2.8 Operaciones con Cadena de Caracteres
Operaciones con cadenas de caracteres
• x y s son cadenas de caracteres y n es un número entero
Operación Descripción
x in s Retorna verdadero si una x existe dentro de s
x not in s Retorna verdadero si una x no existe dentro de s
s + t Concadena s y t
s * n , n * s Repite s n veces
s[i] Obtiene caracteres en índice i de s
s[i:j] Obtiene caracteres entre índice i y j, j es sin incluir
s[i:j:k] Obtiene caracteres entre índice i y j, j es sin incluir -
len(s) Longitud de la cadena de caracteres
min(s) Menor caracter, usando ordern lexicográfico
max(s) Meyor caracter, usando ordern lexicográfico
Eliminar caracteres a la izquierda y derecha
de una cadena
• Función: strip(["caracter"])
• Retorna: la cadena sustituida.
>>> cadena = " www.espol.edu.ec "
>>> print(cadena.strip())
www.espol.edu.ec

>>> print(cadena.strip(' '))


www.espol.edu.ec

>>> “aaaa este es una prueba aa”.strip('a')


“ este es una prueba "
Reemplazar texto
• La función replace reemplaza de una una cadena todas las ocurrencia de una subcadena por otra
• Función: replace("subcadena a buscar", "subcadena por la cual reemplazar")
• Retorna: la cadena reemplazada.

>>> buscar = "nombre apellido"


>>> reemplazar_por = "Juan Pérez”
>>> saludo_generico = “Estimado Sr. nombre apellido”
>>> saludo_generico.replace(buscar, reemplazar_por)
Estimado Sr. Juan Pérez
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.
capitalize()
• Convertir a mayúscula la primera letra
• Función: capitalize()
• Retorna: una copia de la cadena con la primera letra en mayúsculas.

>>> cadena = "bienvenido a mi aplicación"


>>> print (cadena.capitalize())
Bienvenido a mi aplicación
lower()
• Convertir una cadena a minúsculas
• Método: lower()
• Retorna: una copia de la cadena en minúsculas.

>>> cadena = "Hola Mundo"


>>> print (cadena.lower())
hola mundo
upper()
• Convertir una cadena a mayúsculas
• Método: upper()
• Retorna: una copia de la cadena en mayúsculas.

>>> cadena = "Hola Mundo"


>>> print (cadena.upper())
HOLA MUNDO
swapcase()
• 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.

>>> cadena = "Hola Mundo"


>>> print (cadena.swapcase())
hOLA mUNDO
title()
• Convertir una cadena en Formato Título
• Método: title()
• Retorna: una copia de la cadena convertida.

>>> cadena = "hola mundo"


>>> print (cadena.title())
Hola Mundo
Métodos con cadenas de caracteres

Función Descripción
str.count(“subcadena”) Retorna el número de ocurrencias de una
subcadena dentro de una cadena de caracteres.
str.endswith(“subcadena”) Retorna True si la cadena de caracteres termina
con una subcadena especificada, caso contrario
retorna False
str.startswith(“subcadena”) Retorna True si la cadena de caracteres empieza
con una subcadena especificada, caso contrario
retorna False
Métodos con cadenas de caracteres
Función Descripción
str.isalnum() Retorna True si la cadena es alfanumérica, caso contrario retorna
False
str.isalpha() Retorna True si la cadena es alfabética, caso contrario retorna
False
str.isdigit() Retorna True si la cadena es numérica, caso contrario retorna False

str.isdecimal() Retorna True si la cadena es decimal, 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
Métodos con cadenas de caracteres
Función Descripción
s.lower() Devuelve un string con todos sus caracteres en minúsculas.
s.upper() Devuelve un string con todos sus caracteres en mayúsculas.
s.replace(x,y) Devuelve un string con cada ocurrencia de x reemplazada por y.
s.count(x) Cuenta el número de ocurrencias de x en un string.
s.index(x) Devuleve la ubicación de la primera ocurrencia de x.
s.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)
Recuerda!!!!
• Las cadenas de caracteres son inmutables, por lo tanto los métodos
con cadena de caracteres no modifican la cadena original sino que
devuelven uno nuevo.
El método upper()
>>> cadena = "Hola Mundo" devuelve una nueva
>>> print (cadena.upper()) cadena de caracteres con
HOLA MUNDO todos los caracteres en
mayúscula
>>> print (cadena)
Hola Mundo

La cadena original no fue


modificada
Recuerda!!!!
• Si queremos modificar la cadena original, debemos reasignar a la
variable el resultado del método.

>>> cadena = "Hola Mundo"


>>> cadena = cadena.upper()
print (cadena)
HOLA MUNDO

reasignamos a la variable el
resultado del método.
Taller 2.3
1. Escribir un programa que imprima verdadero si una palabra dada es
un verbo, caso contrario imprima falso.
2. Escribir un programa que imprima verdadero si un número dado es
par, caso contrario imprima falso.
3. Escribir un programa que pida al usuario un número decimal por
teclado e imprima la parte decimal del número.
• Ej: Dado 5.2345 , la salida seria 2345
• Ej: Dado 45.3456 , la salida seria 3456
Taller 2.3
5. Escribir un programa que le pida al usuario que ingrese una frase e
imprima verdadero si la frase contiene al menos una vocal, caso
contrario imprima falso.
6. Escribir un programa que le pida al usuario que ingrese una palabra
e imprima verdadero si la palabra contiene todas las vocales.
7. Modifique el programa anterior para que el programa imprima el
número total de vocales que tiene la frase.
8. Cree un programa imprima verdadero sí el número total de vocales
es impar y falso caso contrario.
Ejercicio en Clase
• Escribe un programa que pida dos palabras y diga si riman o no. Si
coinciden las tres últimas letras tiene que decir que riman. Si
coinciden sólo las dos últimas tiene que decir que riman un poco y si
no, que no riman. El usuario puede escribir las palabras con
mayúsculas, minúsculas o mezclando ambas. Usted debe comparar
las letras sin importar si son mayúsculas o minúsculas.
• A continuación, un ejemplo de la salida del programa
Ejercicio en Clase
• A continuación, un ejemplo de la salida del programa
Ingrese palabra uno: programar Ingrese palabra uno: Python
Ingrese palabra dos: AMAR Ingrese palabra dos: camion
Riman: true Riman: false
Riman un poco: true Riman un poco: true
No riman: false No riman: false

Ingrese palabra uno: FLORES


Ingrese palabra dos: fundamentos
Riman: false
Riman un poco: false
No riman: True
2.6 Formateo de Salida
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

Argumento Tipo de dato


%s Cadena de caracteres
%d Entero
%f Número de puntos flotantes
%.<numero de digitos>f Números de punto flotante con
una cantidad de números fijos a la
derecha del punto.
Formato de Salida
• Digamos que tienes una variable llamada "nombre" con el nombre de usuario y
se desea darle un saludo al usuario.

>>> nombre = "Juan"


>>> print ("Hola, %s!" % nombre)
Hola, Juan!
Formato de salida - +2 variables
• Usa dos o mas especificadores de argumento con sus respectivas variables

>>> nombre = "John"


>>> edad = 23
>>> print ("%s tiene %d años." % (nombre, edad))
John tiene 23 años.

>>> libro = "Como programar en python”


>>> precio = 13.5523
>>> print("El libro %s tiene un precio de $ %.2f" %
(libro,precio))
El libro Como programar en python tiene un precio de $ 13.55
Especificadores de Argumento
Salidas formateadas:
Secuencias de Escape

Secuencia Acción
\\ Muestra el caracter backslash.
\’ Muestra el caracter de comilla simple.
\" Muestra el caracter de comilla doble
\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.
Secuencias de escape

#Si se quiere imprimir comillas simples


>>> print("El libro '%s' tiene un precio de $ %.2f" % (libro,precio))
El libro 'Como programar en python' tiene un precio de $ 13.55

#Si se quiere imprimir comillas dobles, se utiliza el backslash antes de


las comillas (\)
>>> print("El libro \"%s\" tiene un precio de $ %.2f" % (libro,precio))
El libro "Como programar en python" tiene un precio de $ 13.55
Secuencias de escape

Si se quiere mostrar un espacio largo – tabulación (\t)


>>> print("El libro \t'%s'\t tiene un precio de $ %.2f" % (libro,precio))
El libro 'Como programar en python' tiene un precio de $
13.55

Si se quiere imprimir en una nueva línea (\n)


>>> print("El libro '%s' tiene un precio de: \n $%.2f" % (libro,precio))
El libro 'Como programar en python' tiene un precio de:
$13.55
Salida por Pantalla
Formato de Salida
• Digamos que tienes una variable llamada "nombre" con el nombre de usuario y
se desea darle un saludo al usuario.

>>> nombre = "Juan"


>>> print ("Hola, %s!" % nombre)
Hola, Juan!

También podría gustarte