SlideShare una empresa de Scribd logo
1 de 24
Herramientas de Programación
Unidad: El paradigma de la
programación estructurada
Profesor: Carlos Diaz diaz_cm@up.edu.pe
Contenido Clase 08
• Cadenas (Strings)
• Acceso a los caracteres de la cadena
• Formato de cadenas
• Alineando cadenas
• Reemplazando cadenas
• Buscando cadenas
• Dividir y unir cadenas
• Presentación de cadenas
• Código de un carácter
• Rellenar una cadena y contar subcadena
• Principio y fin de una cadena
• Excepciones
• Captura y tratamiento de excepciones
Cadenas (Strings)
• Los cadenas (strings) son un tipo de dato compuesto por una secuencia de
caracteres que representan un texto. Estas cadenas de texto son de tipo str y se
delimitan mediante el uso de comillas simples o dobles.
• Cada uno de los caracteres de una cadena (incluidos los espacios) tiene asignado
un índice.
• Las cadenas son inmutables.
Ejemplo: La cadena "Python"
Acceso a los caracteres de la cadena
• El acceso a los caracteres de una cadena son los mismos que para las listas.
Ejemplo:
cadena = "Esto es una cadena de texto ¡Oh!"
print(cadena[3:len(cadena):2])
print(cadena[::-1])
cadena=cadena+cadena[len(cadena)-4:]*3
print(cadena)
Salida:
oe n aead et O!
!hO¡ otxet ed anedac anu se otsE
Esto es una cadena de texto ¡Oh!¡Oh!¡Oh!¡Oh!
Formato de cadenas
Sea x una cadena:
• x.upper(): devuelve una copia de la cadena convirtiendo las letras minúsculas a mayúsculas.
• x.lower(): devuelve una copia de la cadena convirtiendo las letras mayúsculas a minúsculas.
• x.title(): devuelve una copia de la cadena usando la notación de título.
• x.capitalize(): devuelve una copia de la cadena convirtiendo en mayúscula solo la primera letra.
• x.swapcase(): devuelve una copia de la cadena convertidas las mayúsculas en minúsculas y viceversa.
Ejemplo:
cadena = "esTO es una CADena de teXto ¡oH!"
print(cadena.upper()) # ESTO ES UNA CADENA DE TEXTO ¡OH!
print(cadena.lower()) # esto es una cadena de texto ¡oh!
print(cadena.title()) # Esto Es Una Cadena De Texto ¡Oh!
print(cadena.capitalize()) # Esto es una cadena de texto ¡oh!
print(cadena.swapcase()) # ESto ES UNA cadENA DE TExTO ¡Oh!
Alineando cadenas
• {:<10} campo de 10 caracteres, alineando a la izquierda.
Se añaden espacios a la derecha hasta completar 10.
• {:>10} campo de 10 caracteres, alineando a la derecha.
Se añaden espacios a la izquierda hasta completar 10.
• {:^10} campo de 10 caracteres, alineando en el centro.
Se añaden espacios por la izquierda y derecha hasta
completar 5, de forma que el texto quede centrado.
• Puede colocar un carácter de relleno después de los dos
puntos.
Ejemplo:
for x in range(1,11):
print ("{3}{0:<10.2f}{3}{3}{1:.^10d}{3}{3}{2:>10d}{3}".format(x, x * x, x * x * x, "|"))
Ejemplo:
for x in range(1,11):
print ("{5}{0:<8}{5}{1:8}{5}{2:^8}{5}{3:>8}{5}{4:8}{5}".format(x,"Juan", "Rosa", "Lee",25,"|"))
Alineando cadenas
Sea x una cadena:
• x.center(campo,carácter de relleno): devuelve una copia de la cadena centrada.
• x.ljust(campo, carácter de relleno): devuelve una copia de la cadena alineada a la izquierda.
• x.rjust(campo, carácter de relleno): devuelve una copia de la cadena alineada a la derecha.
• El campo es el tamaño total que ocupa la cadena y el relleno.
• Si no coloca el carácter, asume que es el espacio en blanco.
Ejemplo:
cadena = "Lista de empleados"
print (cadena.center(50, "="))# ================Lista de empleados================
print (cadena.ljust(50, "=")) # Lista de empleados================================
print (cadena.rjust(50, "=")) # ================================Lista de empleados
print(cadena.center(50)) # Lista de empleados
Reemplazando cadenas
Sea x una cadena:
• x.lstrip(caracteres): devuelve una copia de la cadena a la cual se le han eliminado los caracteres del
principio. Si no se coloca nada elimina los espacios en blanco.
• x.rstrip(caracteres): devuelve una copia de la cadena a la cual se le han eliminado los caracteres del
final. Si no se coloca nada elimina los espacios en blanco.
• x.strip(caracteres): devuelve una copia de la cadena a la cual se le han eliminado los caracteres de
ambos lados. Si no se coloca nada elimina los espacios en blanco.
Ejemplo:
cadena1 = " .,,;.:Hola:) estimados, ... amigos,;,:),;"
cadena2= " Hola otra vez "
print ("x"+cadena1+"x") # x .,,;.:Hola:) estimados, ... amigos,;,:),;x
print("x"+cadena1.lstrip(";):,. ")+"x") # xHola:) estimados, ... amigos,;,:),;x
print("x"+cadena1.rstrip(";):,. ")+"x") # x .,,;.:Hola:) estimados, ... amigosx
print ("x"+cadena1.strip(";):,. ")+"x") # xHola:) estimados, ... amigosx
print ("x"+cadena2.strip()+"x") #xHola otra vezx
Reemplazando cadenas
Sea x una cadena:
• x.replace(subcadena1, subcadena2, ocurrencias): devuelve una copia de la
cadena a la cual se le ha reemplazado la subcadena1 por la subcadena2 el
número de ocurrencias especificado.
• Si la cadena1 no se encuentra en la cadena x, entonces no hace nada.
Ejemplo:
cadena = "Esto es una cadena de texto y tiene un concepto notorio"
print(cadena.replace("to", "tatu")) # Estatu es una cadena de textatu y tiene un conceptatu notaturio
print(cadena.replace("to", "tatu",2)) # Estatu es una cadena de textatu y tiene un concepto notorio
Buscando cadenas
Sea x una cadena:
• x.find(subcadena,inicio,fin): Busca una subcadena dentro de una cadena.
Ejemplo:
cadena = "No hay camino para la verdad, la verdad es el camino."
print(len(cadena)) # devuelve 53, la longitud de la cadena
print(cadena.index("v")) # devuelve 22, el índice de la primera "v"
print (cadena.find("ver")) # devuelve 22, o sea el índice de "v"
print (cadena.find("ver", 22)) # busca a partir de 22 y devuelve 22, o sea el índice de "v"
print (cadena.find("ver", 23)) # busca a partir de 23 y devuelve 33, o sea el siguiente índice de "v"
print (cadena.find("ver", 23,30)) #devuelve -1 porque no encontró "ver"
Ejercicio 1
• Escriba un programa que solicite una frase con espacios demás y reduzca estos espacios a
solo uno.
Ejemplo:
Ingrese una frase: Hola me llamo Benito y tengo 20 años .
Frase arreglada: Hola me llamo Benito y tengo 20 años .
Dividir y unir cadenas
Sea x una cadena:
• x.split(separador): devuelve una lista de las palabras de la cadena separadas acorde el parámetro
separador. Si este parámetro no se especifica aplica sobre los espacios en blanco.
• x.join: convierta una lista en una cadena de texto.
Ejemplo:
cadena1 = " Esto es una cadena de texto ¡Oh! "
cadena2="Esta/es/otra cadena/¡Oh!"
email = "diaz_cm@up.edu.pe"
print(cadena1.split()) # ['Esto', 'es', 'una', 'cadena', 'de', 'texto', '¡Oh! ']
print(cadena1.split(" ")) # ['Esto', '', '', '', '', '', 'es', '', '', '', '', '', 'una', '', '', '', '', '', 'cadena', '', '', '', '', '', 'de', '', '', '', '', '', 'texto', '', '', '', '', '', '', '¡Oh!']
lista=cadena2.split("/")
print(lista) # ['Esta', 'es', 'otra cadena', '¡Oh!']
print(email.split("@")) # ['diaz_cm', 'up.edu.pe']
print("-".join(lista)) # Esta-es-otra cadena-¡Oh!
Presentación de cadenas
• Una alternativa a la concatenación de cadenas es el uso del método format. Este método devuelve una copia de la cadena a la
que se le han sustituido las posiciones que contienen llaves ({}) por los argumentos del método. Esta sustitución se realiza por
defecto en el mismo orden de los argumentos.
Ejemplo:
nombre = input("Ingresa tu nombre: ")
edad = int(input("Ingresa tu edad: "))
nombreMascota = input("Ingresa el nombre de tu mascota: ")
print ("Tu nombre es {} y tienes {} años.".format(nombre.upper(), edad))
print ("Tu mascota se llama {} y tiene {} caracteres.".format(nombreMascota,len(nombreMascota)))
print ("Tu mascota se llama {2}. Tu eres {0} y tienes {1} años.".format(nombre, edad, nombreMascota))
Ejemplo:
pi=3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
nombre= "Rodolfo"
print("{0} el número pi es {1:10.4f}".format(nombre,pi))
# 1 es el índice del segundo argumento de la función format o sea pi
# 10 es el tamaño del campo reservado para el número incluyendo el punto
# 4 es la cantidad de decimales redondeado del número
# f si el número es float, d si el número es entero
Presentación de cadenas
• Otra alternativa es utilizar las cadenas f (f-Strings), nos da la oportunidad de ejecutar funciones dentro de la cadena.
Ejemplo:
nombre = input("Ingresa tu nombre: ")
edad = int(input("Ingresa tu edad: "))
nombreMascota = input("Ingresa el nombre de tu mascota: ")
print (f"Tu nombre es {nombre.upper()} y tienes {edad} años.")
print(f"Tu mascota se llama {nombreMascota} y tiene {len(nombreMascota)} caracteres.")
print (f"Tu mascota se llama {nombreMascota}. Tu eres {nombre} y tienes {edad} años.")
Ejemplo:
pi=3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
nombre= "Rodolfo"
print(f"{nombre} el número pi es {pi:10.4f}")
Ejemplo:
b="|"
for x in range(1,11):
print (f"{b}{x:<10.2f}{b}{b}{x*x:.^10d}{b}{b}{x*x*x:>10d}{b}")
Código de un carácter
• Cada carácter tiene un código ANSI y se obtiene con la función ord().
• Y de forma similar, conociendo el código ANSI se puede obtener el carácter
mediante la función chr().
Ejemplo: Cambie el carácter por el que le sigue según ANSI.
cadena="Hola mundo"
for x in cadena:
xn=ord(x)+1
x=chr(xn)
print(x,end="")
Ejercicio 2
• En criptografía, el cifrado César, también conocido como cifrado por desplazamiento, código de César o
desplazamiento de César, es una de las técnicas de cifrado más simples y más usadas. Es un tipo de cifrado por
sustitución en el que una letra en el texto original es reemplazada por otra letra que se encuentra un número fijo
de posiciones más adelante en el alfabeto.
• Por ejemplo, con un desplazamiento de 3, la A sería sustituida por la D (situada 3 lugares a la derecha de la A), la
B sería reemplazada por la E, etc. Este método debe su nombre a Julio César, que lo usaba para comunicarse con
sus generales. (Fuente: Wikipedia)
• Escriba dos funciones:
1. Un codificador que solicite una texto en minúsculas, sin tildes, y un número de desplazamiento para realizar el
cifrado Cesar.
2. Un decodificador que solicite una texto codificado, el número de desplazamiento y recupere el texto original.
Nota 1: En ambas funciones el espacio se mantiene como tal, o sea no se cambia.
Nota 2: No puede escribir el alfabeto a mano, debe generarlo, excepto la ñ.
Ejemplo: Si el texto es "mar azul" y el número de desplazamiento es 3, el texto
encriptado es "odu dcxñ“.
Rellenar una cadena y contar subcadena
• zfill(n): Rellena un texto anteponiendo ceros. Donde n es el tamaño del campo.
Ejemplo:
numFactura = 1575
print (str(numFactura).zfill(8)) # 00001575
• count(subcadena,inicio,fin): Cuenta la cantidad de apariciones de una subcadena.
Ejemplo:
cadena = "Esto es una cadena de texto y tiene un concepto notorio"
print (cadena.count("to")) # 4
print (cadena.count("to",2)) # 4
print (cadena.count("to",3)) # 3
print (cadena.count("to",0,3)) # 0
print (cadena.count("to",0,4)) # 1
print (cadena.count("to",10,50)) # 2
Principio y fin de una cadena
• startswith(subcadena,inicio,fin): Comprueba si una cadena comienza con una subcadena
determinada.
cadena = "Esto es una cadena de texto y tiene un concepto notorio"
print (cadena.startswith("Es")) # True
print (cadena.startswith("texto")) # False
print(cadena.index("t",3)) # devuelve 22, o sea el índice de la "t" después de la primera "t "
print (cadena.startswith("texto", 22)) # True
• endswith(subcadena,inicio,fin): Comprueba si una cadena finaliza con una subcadena
determinada.
cadena = "Esto es una cadena de texto y tiene un concepto notorio"
print (cadena.endswith("rio")) # True
print (cadena.endswith("texto")) # False
print(cadena.index("to",3)) # devuelve 25, o sea el índice de la "to" después del primer "to"
print (cadena.endswith("texto",0,27)) # True
Ejercicio 3
• Se tiene una base de datos con el nombre, la edad y el DNI de una persona.
["Juan Perez-25-12345678", "Maria Ramos-39-87654321", "Ariel Lopez-19-
56432146", "Rosa Escalante-26-62759872", "Federico Bosh-66-39804576"]
Genere un código autogenerado para cada uno formado por:
1. Las 2 últimas letras del apellido paterno.
2. Las 2 últimas letras del nombre.
3. La suma de los dígitos de la edad en el formato 00, es decir que si la suma
es 7 debe mostrar 07.
4. El tercer dígito del DNI.
5. Vocales en minúsculas, diferentes en su nombre y en orden descendente.
Excepciones
• Las excepciones son errores detectados por Python durante la ejecución del
programa.
• Cuando el intérprete se encuentra con una situación excepcional, como el
intentar dividir un número entre 0 o el intentar acceder a un archivo que no
existe, este genera o lanza una excepción, informando al usuario que existe
algún problema.
• Si la excepción no se captura el flujo de ejecución se interrumpe y se muestra
la información asociada a la excepción en la consola de forma que el
programador pueda solucionar el problema.
Captura y tratamiento de excepciones
• Para capturar y tratar una excepción se utiliza la siguiente sintaxis:
#Las necesarias solo son try y except
try:
<Sentencias susceptibles de lanzar error>
except:
<Sentencias ejecutadas cuando ocurre el error>
else:
<Sentencias ejecutadas cuando no hay error>
finally:
<Sentencias que siempre se ejecutan>
Ejemplo
• ¿Que realiza este ejemplo?
try:
n=int(input("Ingrese un entero: "))
print("El número ingresado es: ",n)
except:
print("Ocurrio un error")
else:
print("No ocurrio un error")
finally:
print("Esto siempre pasa")
Ejercicio 4
• Escriba un programa que solicite la nota de un estudiante y lo valide para que
este en el rango de 0 a 20. Es decir, su programa debe estar preparado
cuando se ingrese cualquier cosa diferente a la nota, por ejemplo -5, -21,
17.5, hola, espacio en blanco, enter, etc. Y debe solicitar de nuevo hasta que
ingrese una nota valida.
Cadenas de texto en Python: acceso, formato y búsqueda

Más contenido relacionado

La actualidad más candente

Variables & Data Types In Python | Edureka
Variables & Data Types In Python | EdurekaVariables & Data Types In Python | Edureka
Variables & Data Types In Python | EdurekaEdureka!
 
Arrays In Python | Python Array Operations | Edureka
Arrays In Python | Python Array Operations | EdurekaArrays In Python | Python Array Operations | Edureka
Arrays In Python | Python Array Operations | EdurekaEdureka!
 
What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...
What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...
What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...Edureka!
 
Basic data types in python
Basic data types in pythonBasic data types in python
Basic data types in pythonsunilchute1
 
Exception Handling In Python | Exceptions In Python | Python Programming Tuto...
Exception Handling In Python | Exceptions In Python | Python Programming Tuto...Exception Handling In Python | Exceptions In Python | Python Programming Tuto...
Exception Handling In Python | Exceptions In Python | Python Programming Tuto...Edureka!
 
Python interview questions
Python interview questionsPython interview questions
Python interview questionsPragati Singh
 
Python programming
Python programmingPython programming
Python programmingKeshav Gupta
 
USE OF PRINT IN PYTHON PART 2
USE OF PRINT IN PYTHON PART 2USE OF PRINT IN PYTHON PART 2
USE OF PRINT IN PYTHON PART 2vikram mahendra
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 

La actualidad más candente (20)

Loops in Python.pptx
Loops in Python.pptxLoops in Python.pptx
Loops in Python.pptx
 
Variables & Data Types In Python | Edureka
Variables & Data Types In Python | EdurekaVariables & Data Types In Python | Edureka
Variables & Data Types In Python | Edureka
 
Arrays In Python | Python Array Operations | Edureka
Arrays In Python | Python Array Operations | EdurekaArrays In Python | Python Array Operations | Edureka
Arrays In Python | Python Array Operations | Edureka
 
What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...
What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...
What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...
 
Basic data types in python
Basic data types in pythonBasic data types in python
Basic data types in python
 
Algoritmos de busca
Algoritmos de buscaAlgoritmos de busca
Algoritmos de busca
 
Eng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de softwareEng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de software
 
Python for loop
Python for loopPython for loop
Python for loop
 
Exception Handling In Python | Exceptions In Python | Python Programming Tuto...
Exception Handling In Python | Exceptions In Python | Python Programming Tuto...Exception Handling In Python | Exceptions In Python | Python Programming Tuto...
Exception Handling In Python | Exceptions In Python | Python Programming Tuto...
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Python interview questions
Python interview questionsPython interview questions
Python interview questions
 
Python programming
Python programmingPython programming
Python programming
 
Oops presentation
Oops presentationOops presentation
Oops presentation
 
USE OF PRINT IN PYTHON PART 2
USE OF PRINT IN PYTHON PART 2USE OF PRINT IN PYTHON PART 2
USE OF PRINT IN PYTHON PART 2
 
Python network programming
Python   network programmingPython   network programming
Python network programming
 
Strings in Python
Strings in PythonStrings in Python
Strings in Python
 
List in Python
List in PythonList in Python
List in Python
 
Python Programming Essentials - M9 - String Formatting
Python Programming Essentials - M9 - String FormattingPython Programming Essentials - M9 - String Formatting
Python Programming Essentials - M9 - String Formatting
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Python OOPs
Python OOPsPython OOPs
Python OOPs
 

Similar a Cadenas de texto en Python: acceso, formato y búsqueda

30 Php. Cadenas Alfanumericas
30 Php. Cadenas Alfanumericas30 Php. Cadenas Alfanumericas
30 Php. Cadenas AlfanumericasJosé M. Padilla
 
expresion-regular.pdf
expresion-regular.pdfexpresion-regular.pdf
expresion-regular.pdffispari1
 
Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Milton Nicolay
 
18 tipos-de-datos
18 tipos-de-datos18 tipos-de-datos
18 tipos-de-datosAndy T
 
Capitulo 8 Cadenas
Capitulo 8  CadenasCapitulo 8  Cadenas
Capitulo 8 Cadenasguest506dc9
 
Funciones de Strings en PHP
Funciones de Strings en PHPFunciones de Strings en PHP
Funciones de Strings en PHPAngie Mejia
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regularesJordan-P
 
Capítulo 6 Qbasic manipulación de cadenas de texto
Capítulo 6 Qbasic  manipulación de cadenas de textoCapítulo 6 Qbasic  manipulación de cadenas de texto
Capítulo 6 Qbasic manipulación de cadenas de textoJulio Ayala Rolón
 
Fpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFresyMetal
 
08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenashorusblom
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Javazousbabastre
 
ReferenciaPython.pdf
ReferenciaPython.pdfReferenciaPython.pdf
ReferenciaPython.pdfUPEL-IPB
 
Funciones de excel como siempre imprimiendole todo mi amor.
Funciones de excel como siempre imprimiendole todo mi amor.Funciones de excel como siempre imprimiendole todo mi amor.
Funciones de excel como siempre imprimiendole todo mi amor.Angel Lopez Morgado
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacionEdison Cruz
 

Similar a Cadenas de texto en Python: acceso, formato y búsqueda (20)

9_U2_S3_Cadenas.pdf
9_U2_S3_Cadenas.pdf9_U2_S3_Cadenas.pdf
9_U2_S3_Cadenas.pdf
 
FP-Unidad2-Sesión02.pdf
FP-Unidad2-Sesión02.pdfFP-Unidad2-Sesión02.pdf
FP-Unidad2-Sesión02.pdf
 
30 Php. Cadenas Alfanumericas
30 Php. Cadenas Alfanumericas30 Php. Cadenas Alfanumericas
30 Php. Cadenas Alfanumericas
 
expresion-regular.pdf
expresion-regular.pdfexpresion-regular.pdf
expresion-regular.pdf
 
Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Fundamentos de programación librería string C++
Fundamentos de programación librería string C++
 
18 tipos-de-datos
18 tipos-de-datos18 tipos-de-datos
18 tipos-de-datos
 
Capitulo 8 Cadenas
Capitulo 8  CadenasCapitulo 8  Cadenas
Capitulo 8 Cadenas
 
Funciones de Strings en PHP
Funciones de Strings en PHPFunciones de Strings en PHP
Funciones de Strings en PHP
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
Capítulo 6 Qbasic manipulación de cadenas de texto
Capítulo 6 Qbasic  manipulación de cadenas de textoCapítulo 6 Qbasic  manipulación de cadenas de texto
Capítulo 6 Qbasic manipulación de cadenas de texto
 
Fpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.com
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenas
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Java
 
Funciones str
Funciones strFunciones str
Funciones str
 
!Prograc8
!Prograc8!Prograc8
!Prograc8
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
ReferenciaPython.pdf
ReferenciaPython.pdfReferenciaPython.pdf
ReferenciaPython.pdf
 
Funciones de excel como siempre imprimiendole todo mi amor.
Funciones de excel como siempre imprimiendole todo mi amor.Funciones de excel como siempre imprimiendole todo mi amor.
Funciones de excel como siempre imprimiendole todo mi amor.
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 

Último

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 

Último (20)

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 

Cadenas de texto en Python: acceso, formato y búsqueda

  • 1. Herramientas de Programación Unidad: El paradigma de la programación estructurada Profesor: Carlos Diaz diaz_cm@up.edu.pe
  • 2. Contenido Clase 08 • Cadenas (Strings) • Acceso a los caracteres de la cadena • Formato de cadenas • Alineando cadenas • Reemplazando cadenas • Buscando cadenas • Dividir y unir cadenas • Presentación de cadenas • Código de un carácter • Rellenar una cadena y contar subcadena • Principio y fin de una cadena • Excepciones • Captura y tratamiento de excepciones
  • 3. Cadenas (Strings) • Los cadenas (strings) son un tipo de dato compuesto por una secuencia de caracteres que representan un texto. Estas cadenas de texto son de tipo str y se delimitan mediante el uso de comillas simples o dobles. • Cada uno de los caracteres de una cadena (incluidos los espacios) tiene asignado un índice. • Las cadenas son inmutables. Ejemplo: La cadena "Python"
  • 4. Acceso a los caracteres de la cadena • El acceso a los caracteres de una cadena son los mismos que para las listas. Ejemplo: cadena = "Esto es una cadena de texto ¡Oh!" print(cadena[3:len(cadena):2]) print(cadena[::-1]) cadena=cadena+cadena[len(cadena)-4:]*3 print(cadena) Salida: oe n aead et O! !hO¡ otxet ed anedac anu se otsE Esto es una cadena de texto ¡Oh!¡Oh!¡Oh!¡Oh!
  • 5. Formato de cadenas Sea x una cadena: • x.upper(): devuelve una copia de la cadena convirtiendo las letras minúsculas a mayúsculas. • x.lower(): devuelve una copia de la cadena convirtiendo las letras mayúsculas a minúsculas. • x.title(): devuelve una copia de la cadena usando la notación de título. • x.capitalize(): devuelve una copia de la cadena convirtiendo en mayúscula solo la primera letra. • x.swapcase(): devuelve una copia de la cadena convertidas las mayúsculas en minúsculas y viceversa. Ejemplo: cadena = "esTO es una CADena de teXto ¡oH!" print(cadena.upper()) # ESTO ES UNA CADENA DE TEXTO ¡OH! print(cadena.lower()) # esto es una cadena de texto ¡oh! print(cadena.title()) # Esto Es Una Cadena De Texto ¡Oh! print(cadena.capitalize()) # Esto es una cadena de texto ¡oh! print(cadena.swapcase()) # ESto ES UNA cadENA DE TExTO ¡Oh!
  • 6. Alineando cadenas • {:<10} campo de 10 caracteres, alineando a la izquierda. Se añaden espacios a la derecha hasta completar 10. • {:>10} campo de 10 caracteres, alineando a la derecha. Se añaden espacios a la izquierda hasta completar 10. • {:^10} campo de 10 caracteres, alineando en el centro. Se añaden espacios por la izquierda y derecha hasta completar 5, de forma que el texto quede centrado. • Puede colocar un carácter de relleno después de los dos puntos. Ejemplo: for x in range(1,11): print ("{3}{0:<10.2f}{3}{3}{1:.^10d}{3}{3}{2:>10d}{3}".format(x, x * x, x * x * x, "|")) Ejemplo: for x in range(1,11): print ("{5}{0:<8}{5}{1:8}{5}{2:^8}{5}{3:>8}{5}{4:8}{5}".format(x,"Juan", "Rosa", "Lee",25,"|"))
  • 7. Alineando cadenas Sea x una cadena: • x.center(campo,carácter de relleno): devuelve una copia de la cadena centrada. • x.ljust(campo, carácter de relleno): devuelve una copia de la cadena alineada a la izquierda. • x.rjust(campo, carácter de relleno): devuelve una copia de la cadena alineada a la derecha. • El campo es el tamaño total que ocupa la cadena y el relleno. • Si no coloca el carácter, asume que es el espacio en blanco. Ejemplo: cadena = "Lista de empleados" print (cadena.center(50, "="))# ================Lista de empleados================ print (cadena.ljust(50, "=")) # Lista de empleados================================ print (cadena.rjust(50, "=")) # ================================Lista de empleados print(cadena.center(50)) # Lista de empleados
  • 8. Reemplazando cadenas Sea x una cadena: • x.lstrip(caracteres): devuelve una copia de la cadena a la cual se le han eliminado los caracteres del principio. Si no se coloca nada elimina los espacios en blanco. • x.rstrip(caracteres): devuelve una copia de la cadena a la cual se le han eliminado los caracteres del final. Si no se coloca nada elimina los espacios en blanco. • x.strip(caracteres): devuelve una copia de la cadena a la cual se le han eliminado los caracteres de ambos lados. Si no se coloca nada elimina los espacios en blanco. Ejemplo: cadena1 = " .,,;.:Hola:) estimados, ... amigos,;,:),;" cadena2= " Hola otra vez " print ("x"+cadena1+"x") # x .,,;.:Hola:) estimados, ... amigos,;,:),;x print("x"+cadena1.lstrip(";):,. ")+"x") # xHola:) estimados, ... amigos,;,:),;x print("x"+cadena1.rstrip(";):,. ")+"x") # x .,,;.:Hola:) estimados, ... amigosx print ("x"+cadena1.strip(";):,. ")+"x") # xHola:) estimados, ... amigosx print ("x"+cadena2.strip()+"x") #xHola otra vezx
  • 9. Reemplazando cadenas Sea x una cadena: • x.replace(subcadena1, subcadena2, ocurrencias): devuelve una copia de la cadena a la cual se le ha reemplazado la subcadena1 por la subcadena2 el número de ocurrencias especificado. • Si la cadena1 no se encuentra en la cadena x, entonces no hace nada. Ejemplo: cadena = "Esto es una cadena de texto y tiene un concepto notorio" print(cadena.replace("to", "tatu")) # Estatu es una cadena de textatu y tiene un conceptatu notaturio print(cadena.replace("to", "tatu",2)) # Estatu es una cadena de textatu y tiene un concepto notorio
  • 10. Buscando cadenas Sea x una cadena: • x.find(subcadena,inicio,fin): Busca una subcadena dentro de una cadena. Ejemplo: cadena = "No hay camino para la verdad, la verdad es el camino." print(len(cadena)) # devuelve 53, la longitud de la cadena print(cadena.index("v")) # devuelve 22, el índice de la primera "v" print (cadena.find("ver")) # devuelve 22, o sea el índice de "v" print (cadena.find("ver", 22)) # busca a partir de 22 y devuelve 22, o sea el índice de "v" print (cadena.find("ver", 23)) # busca a partir de 23 y devuelve 33, o sea el siguiente índice de "v" print (cadena.find("ver", 23,30)) #devuelve -1 porque no encontró "ver"
  • 11. Ejercicio 1 • Escriba un programa que solicite una frase con espacios demás y reduzca estos espacios a solo uno. Ejemplo: Ingrese una frase: Hola me llamo Benito y tengo 20 años . Frase arreglada: Hola me llamo Benito y tengo 20 años .
  • 12. Dividir y unir cadenas Sea x una cadena: • x.split(separador): devuelve una lista de las palabras de la cadena separadas acorde el parámetro separador. Si este parámetro no se especifica aplica sobre los espacios en blanco. • x.join: convierta una lista en una cadena de texto. Ejemplo: cadena1 = " Esto es una cadena de texto ¡Oh! " cadena2="Esta/es/otra cadena/¡Oh!" email = "diaz_cm@up.edu.pe" print(cadena1.split()) # ['Esto', 'es', 'una', 'cadena', 'de', 'texto', '¡Oh! '] print(cadena1.split(" ")) # ['Esto', '', '', '', '', '', 'es', '', '', '', '', '', 'una', '', '', '', '', '', 'cadena', '', '', '', '', '', 'de', '', '', '', '', '', 'texto', '', '', '', '', '', '', '¡Oh!'] lista=cadena2.split("/") print(lista) # ['Esta', 'es', 'otra cadena', '¡Oh!'] print(email.split("@")) # ['diaz_cm', 'up.edu.pe'] print("-".join(lista)) # Esta-es-otra cadena-¡Oh!
  • 13. Presentación de cadenas • Una alternativa a la concatenación de cadenas es el uso del método format. Este método devuelve una copia de la cadena a la que se le han sustituido las posiciones que contienen llaves ({}) por los argumentos del método. Esta sustitución se realiza por defecto en el mismo orden de los argumentos. Ejemplo: nombre = input("Ingresa tu nombre: ") edad = int(input("Ingresa tu edad: ")) nombreMascota = input("Ingresa el nombre de tu mascota: ") print ("Tu nombre es {} y tienes {} años.".format(nombre.upper(), edad)) print ("Tu mascota se llama {} y tiene {} caracteres.".format(nombreMascota,len(nombreMascota))) print ("Tu mascota se llama {2}. Tu eres {0} y tienes {1} años.".format(nombre, edad, nombreMascota)) Ejemplo: pi=3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679 nombre= "Rodolfo" print("{0} el número pi es {1:10.4f}".format(nombre,pi)) # 1 es el índice del segundo argumento de la función format o sea pi # 10 es el tamaño del campo reservado para el número incluyendo el punto # 4 es la cantidad de decimales redondeado del número # f si el número es float, d si el número es entero
  • 14. Presentación de cadenas • Otra alternativa es utilizar las cadenas f (f-Strings), nos da la oportunidad de ejecutar funciones dentro de la cadena. Ejemplo: nombre = input("Ingresa tu nombre: ") edad = int(input("Ingresa tu edad: ")) nombreMascota = input("Ingresa el nombre de tu mascota: ") print (f"Tu nombre es {nombre.upper()} y tienes {edad} años.") print(f"Tu mascota se llama {nombreMascota} y tiene {len(nombreMascota)} caracteres.") print (f"Tu mascota se llama {nombreMascota}. Tu eres {nombre} y tienes {edad} años.") Ejemplo: pi=3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679 nombre= "Rodolfo" print(f"{nombre} el número pi es {pi:10.4f}") Ejemplo: b="|" for x in range(1,11): print (f"{b}{x:<10.2f}{b}{b}{x*x:.^10d}{b}{b}{x*x*x:>10d}{b}")
  • 15. Código de un carácter • Cada carácter tiene un código ANSI y se obtiene con la función ord(). • Y de forma similar, conociendo el código ANSI se puede obtener el carácter mediante la función chr(). Ejemplo: Cambie el carácter por el que le sigue según ANSI. cadena="Hola mundo" for x in cadena: xn=ord(x)+1 x=chr(xn) print(x,end="")
  • 16. Ejercicio 2 • En criptografía, el cifrado César, también conocido como cifrado por desplazamiento, código de César o desplazamiento de César, es una de las técnicas de cifrado más simples y más usadas. Es un tipo de cifrado por sustitución en el que una letra en el texto original es reemplazada por otra letra que se encuentra un número fijo de posiciones más adelante en el alfabeto. • Por ejemplo, con un desplazamiento de 3, la A sería sustituida por la D (situada 3 lugares a la derecha de la A), la B sería reemplazada por la E, etc. Este método debe su nombre a Julio César, que lo usaba para comunicarse con sus generales. (Fuente: Wikipedia) • Escriba dos funciones: 1. Un codificador que solicite una texto en minúsculas, sin tildes, y un número de desplazamiento para realizar el cifrado Cesar. 2. Un decodificador que solicite una texto codificado, el número de desplazamiento y recupere el texto original. Nota 1: En ambas funciones el espacio se mantiene como tal, o sea no se cambia. Nota 2: No puede escribir el alfabeto a mano, debe generarlo, excepto la ñ. Ejemplo: Si el texto es "mar azul" y el número de desplazamiento es 3, el texto encriptado es "odu dcxñ“.
  • 17. Rellenar una cadena y contar subcadena • zfill(n): Rellena un texto anteponiendo ceros. Donde n es el tamaño del campo. Ejemplo: numFactura = 1575 print (str(numFactura).zfill(8)) # 00001575 • count(subcadena,inicio,fin): Cuenta la cantidad de apariciones de una subcadena. Ejemplo: cadena = "Esto es una cadena de texto y tiene un concepto notorio" print (cadena.count("to")) # 4 print (cadena.count("to",2)) # 4 print (cadena.count("to",3)) # 3 print (cadena.count("to",0,3)) # 0 print (cadena.count("to",0,4)) # 1 print (cadena.count("to",10,50)) # 2
  • 18. Principio y fin de una cadena • startswith(subcadena,inicio,fin): Comprueba si una cadena comienza con una subcadena determinada. cadena = "Esto es una cadena de texto y tiene un concepto notorio" print (cadena.startswith("Es")) # True print (cadena.startswith("texto")) # False print(cadena.index("t",3)) # devuelve 22, o sea el índice de la "t" después de la primera "t " print (cadena.startswith("texto", 22)) # True • endswith(subcadena,inicio,fin): Comprueba si una cadena finaliza con una subcadena determinada. cadena = "Esto es una cadena de texto y tiene un concepto notorio" print (cadena.endswith("rio")) # True print (cadena.endswith("texto")) # False print(cadena.index("to",3)) # devuelve 25, o sea el índice de la "to" después del primer "to" print (cadena.endswith("texto",0,27)) # True
  • 19. Ejercicio 3 • Se tiene una base de datos con el nombre, la edad y el DNI de una persona. ["Juan Perez-25-12345678", "Maria Ramos-39-87654321", "Ariel Lopez-19- 56432146", "Rosa Escalante-26-62759872", "Federico Bosh-66-39804576"] Genere un código autogenerado para cada uno formado por: 1. Las 2 últimas letras del apellido paterno. 2. Las 2 últimas letras del nombre. 3. La suma de los dígitos de la edad en el formato 00, es decir que si la suma es 7 debe mostrar 07. 4. El tercer dígito del DNI. 5. Vocales en minúsculas, diferentes en su nombre y en orden descendente.
  • 20. Excepciones • Las excepciones son errores detectados por Python durante la ejecución del programa. • Cuando el intérprete se encuentra con una situación excepcional, como el intentar dividir un número entre 0 o el intentar acceder a un archivo que no existe, este genera o lanza una excepción, informando al usuario que existe algún problema. • Si la excepción no se captura el flujo de ejecución se interrumpe y se muestra la información asociada a la excepción en la consola de forma que el programador pueda solucionar el problema.
  • 21. Captura y tratamiento de excepciones • Para capturar y tratar una excepción se utiliza la siguiente sintaxis: #Las necesarias solo son try y except try: <Sentencias susceptibles de lanzar error> except: <Sentencias ejecutadas cuando ocurre el error> else: <Sentencias ejecutadas cuando no hay error> finally: <Sentencias que siempre se ejecutan>
  • 22. Ejemplo • ¿Que realiza este ejemplo? try: n=int(input("Ingrese un entero: ")) print("El número ingresado es: ",n) except: print("Ocurrio un error") else: print("No ocurrio un error") finally: print("Esto siempre pasa")
  • 23. Ejercicio 4 • Escriba un programa que solicite la nota de un estudiante y lo valide para que este en el rango de 0 a 20. Es decir, su programa debe estar preparado cuando se ingrese cualquier cosa diferente a la nota, por ejemplo -5, -21, 17.5, hola, espacio en blanco, enter, etc. Y debe solicitar de nuevo hasta que ingrese una nota valida.