Tutorial Python (in Work)
  • 1 - Objetivos del tutorial de Python
  • 2 - Instalación del lenguaje y pasos para crear nuestro primer programa
  • 3 - Codificación del diagrama de flujo en Python
  • 4 - Errores sintácticos y lógicos
  • 5 - Estructura de programación secuencial
  • 6 - Estructuras condicionales simples y compuestas
  • 7 - Estructuras condicionales anidadas
  • 8 - Condiciones compuestas con operadores lógicos
  • 9 - Estructura repetitiva while
  • 10 - Estructura repetitiva for
  • 11 - Definición de comentarios en el código fuente
  • 12 - Variables enteras, flotantes y cadenas de caracteres
  • 13 - Procesar cadenas de caracteres
  • 14 - Estructura de datos tipo lista
  • 15 - Listas: carga por teclado de sus elementos
  • 16 - Listas: mayor y menor elemento
  • 17 - Listas paralelas
  • 18 - Listas: ordenamiento de sus elementos
  • 19 - Listas: ordenamiento con listas paralelas
  • 20 - Listas: componentes de tipo lista
  • 21 - Listas: carga por teclado de componentes de tipo lista
  • 22 - Listas: eliminación de elementos
  • 23 - Concepto de funciones - Programación estructurada
  • 24 - Funciones: parámetros
Con tecnología de GitBook
En esta página
  • Ejemplos
  • Métodos propios de las cadenas de caracteres
  • Problemas propuestos

¿Te fue útil?

13 - Procesar cadenas de caracteres

Algunos métodos y conceptos para el manejo de strings

Anterior12 - Variables enteras, flotantes y cadenas de caracteresSiguiente14 - Estructura de datos tipo lista

Última actualización hace 4 años

¿Te fue útil?

Ya hemos visto que podemos cargar una cadena de caracteres tanto por asignación (comillas dobles o simples), como por teclado. Podemos utilizar los para identificar si dos cadenas son iguales, distintas o cual es la mayor alfabéticamente.

Como su nombre lo indica una cadena de caracteres está formada generalmente por varios caracteres (de todos modos podría tener solo un caracter o ser una cadena vacía) Podemos acceder en forma individual a cada caracter del string mediante un subíndice:

nombre='jhon'
print(nombre[0])   #se imprime una j
if nombre[0]=="j": #verificamos si el primer caracter del string es una j
    print(nombre)
    print("comienza con la letra j")

Los subíndices comienzan a numerarse a partir del cero.

Si queremos conocer la longitud de un string en Python disponemos de una función llamada len que retorna la cantidad de caracteres que contiene.

nombre= 'jhon'
print(len(nombre))

El programa anterior imprime un 4 ya que la cadena nombre almacena 'jhon' que tiene cuatro caracteres.

Ejemplos

Ejemplo 1

Realizar la carga del nombre de una persona y luego mostrar el primer caracter del nombre y la cantidad de letras que lo componen.

name=input("Enter a name: ")
print(f"The first character of {name} is: {name[0]}")
print(f"The length of {name} is: {len(name)}")

Ejemplo 2

Solicitar la carga del nombre de una persona en minúsculas. Mostrar un mensaje si comienza con vocal dicho nombre.

#name
name=input("Enter a name: ")
if(name[0]=="a" or name[0]=="e" or name[0]=="i" or name[0]=="o" or name[0]=="u"):
    print(f"{name} begins with a vowel")
else:
    print(f"{name} does not begin with a vowel")

Basta con que una de las condiciones del if sea verdadera luego se ejecuta el bloque del verdadero.

Ejemplo 3

Ingresar un mail por teclado. Verificar si el string ingresado contiene solo un caracter "@".

mail=input("Ingrese un mail:")
cantidad=0
x=0
while x<len(mail):
    if mail[x]=="@":
        cantidad=cantidad+1
    x=x+1
if cantidad==1:
    print("Contiene solo un caracter @ el mail ingresado")
else:
    print("Incorrecto")

Para analizar cada caracter del string ingresado disponemos una estructura while utilizando un contador llamado x que comienza con el valor cero y se repetirá tantas veces como caracteres tenga la cadena (mediante la función len obtenemos la cantidad de caracteres).

while x < len (mail):

Dentro del ciclo while verificamos cada caracter mediante un if y contamos la cantidad de caracterers "@":

if(mail[i]=="@"):

counterArroba+=1

Cuando sale del ciclo while procedemos a verificar si el contador tiene almacenado el valor 1 y mostramos el mensaje respectivo:

if(counterArroba==1):

print("The email has one @")

Los string en Python son inmutables, esto quiere decir que una vez que los inicializamos no podemos modificar su contenido.

name="Jhon"
name[0]="m" #esto esta permitido
name="Jhon"
name = "jhon" #esto si esta permitido

Métodos propios de las cadenas de caracteres

  • upper() : devuelve una cadena de caracteres convertida todos sus caracteres a mayúsculas.

  • lower() : devuelve una cadena de caracteres convertida todos sus caracteres a minúsculas.

  • capitalize() : devuelve una cadena de caracteres convertida a mayúscula solo su primer caracter y todos los demás a minúsculas.

Ejemplo 4

Inicializar un string con la cadena "mAriA" luego llamar a sus métodos upper(), lower() y capitalize(), guardar los datos retornados en otros string y mostrarlos por pantalla.

text1="mAriA"
#upper case
print(text1)
text2=text1.upper()
print(f"Upper case: {text2}")
#lower case
text2=text1.lower()
print("Lower case: ",text2)
text2=text1.capitalize()
print("Capitalizae case: ",text2)

Para llamar a un método del string debemos disponer entre el nombre del string y el método el caracter punto.

text2 = text1.upper()

Problema 1

Cargar una oración por teclado. Mostrar luego cuantos espacios en blanco se ingresaron.

Tener en cuenta que un espacio en blanco es igual a " ", en cambio una cadena vacía es ""

Problem 2

Ingresar una oración que pueden tener letras tanto en mayúsculas como minúsculas. Contar la cantidad de vocales.

Problem 3

#count blank Space
countBlank=0
text=input("Enter text: ")
for f in range(len(text)):
    if(text[f]==" "):
        countBlank+=1
print("The blanck space: ",countBlank)
#text (Esto es un texto): 6
text=input("Enter text: ")
#auxiliar text (lower case)
textAuxt=text.lower()
#count vowel
countVowel=0
#scroll text
for f in range(len(textAuxt)):
    x=textAuxt[f]
    # a vowel
    if(x=='a' or x=='e' or x=='i' or x=='o' or x=='u'):
        countVowel+=1
print("The number of vowels: ",countVowel)
# password
password=""
# The passWord is correct
passWordCorrect=False
while (passWordCorrect!=True):
    password=input("Enter password: ")
    # it should have between 10 and 20 characters
    if(len(password)>=10 and len(password)<=20):
        passWordCorrect=True
    else:
        print("The password should have between 10 and 20 characters")

No hay que confundir cambiar parte del string con realizar la asignación de otro string a la misma variable, luego si es correcto asignar otro valor a un string:

Los string tienen una serie de métodos (funciones aplicables solo a los string) que nos facilitan la creación de nuestros programas.

Los primeros tres métodos que veremos se llaman: lower, upper y capitalize.

Problemas propuestos

Ha llegado una parte fundamental , que es el momento donde uno desarrolla individualmente un algoritmo para la resolución de problemas. El tiempo a dedicar a esta sección ejercicios propuestos debe ser mucho mayor que el empleado a la sección de ejercicios resueltos. La experiencia dice que debemos dedicar el 80% del tiempo a la resolución individual de problemas y el otro 20% al análisis y codificación de problemas ya resueltos por otras personas.

Solicitar el ingreso de una clave por teclado y almacenarla en una cadena de caracteres . Controlar que el string ingresado tenga entre 10 y 20 caracteres para que sea válido, en caso contrario mostrar un mensaje de error.

Solución

Nota : Inténtalo tu mism@, esta es la mejor forma de aprender o si quieres ver otro algoritmo para solucionar el mismo problema.

😵
🙂
🌌
📚
😀
✍🏾
👩🏾‍💻
🕖
🗃️
🗝️
🙈
🆘
👩‍🏫
📈
👀
👨‍💻
🔙
🔗
🔡
🇪
operadores relacionales
Error al querer modificar una parte de un string
Ejecución ejemplo 4