PROGRAMACIÓN EN PYTHON – CLASE 04

(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)


CADENAS

Operadores de cadenas, longitud y slicing.



Las cadenas de caracteres (strings), son secuencias de letras, números o símbolos que se juntan para formar palabras, frases o incluso datos como números de teléfono o direcciones.
Son ideales para almacenar información no numérica, como datos personales o de productos.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Creación de variables del tipo String
apellido = "Saafigueroa"
nombre = "Agustín" # Pueden incluir espacios en blanco.
dirección = "Orden 129" # Pueden incluir dígitos.
password = "$3ytR&%|" # Pueden incluir caracteres especiales.
edad = "23" # Pueden tener solamente dígitos.
nada = "" # Esta es una cadena “nula” (vacía).
# Creación de variables del tipo String apellido = "Saafigueroa" nombre = "Agustín" # Pueden incluir espacios en blanco. dirección = "Orden 129" # Pueden incluir dígitos. password = "$3ytR&%|" # Pueden incluir caracteres especiales. edad = "23" # Pueden tener solamente dígitos. nada = "" # Esta es una cadena “nula” (vacía).
# Creación de variables del tipo String
apellido = "Saafigueroa"
nombre = "Agustín"      # Pueden incluir espacios en blanco. 
dirección = "Orden 129" # Pueden incluir dígitos. 
password = "$3ytR&%|"   # Pueden incluir caracteres especiales.
edad = "23"             # Pueden tener solamente dígitos.
nada = ""               # Esta es una cadena “nula” (vacía).


En Python, algunos operadores presentan comportamientos distintos dependiendo del contexto en el que se utilicen.

Por ejemplo, el operador * multiplica números cuando se utilizan entre ellos.

Sin embargo, si lo empleamos con
una cadena y un número (en ese orden), replicaremos la cadena el número de veces indicado por el valor numérico.
¡Experimentá con esto para comprobarlo!

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
risa = 'ja'
carcajada = risa * 5 # jajajajaja
linea = "-" * 15 # ---------------
risa = 'ja' carcajada = risa * 5 # jajajajaja linea = "-" * 15 # ---------------
risa = 'ja'
carcajada = risa * 5     # jajajajaja
linea = "-" * 15         # ---------------


Para combinar (concatenar) dos o más cadenas, utilizamos el operador + (más), como se observa en el ejemplo. Este operador suma números o une cadenas entre sí.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
nombre = input("Ingrese su nombre: ")
saludo = "Hola " + nombre
print(saludo)
nombre = input("Ingrese su nombre: ") saludo = "Hola " + nombre print(saludo)
nombre = input("Ingrese su nombre: ")
saludo = "Hola " + nombre
print(saludo)
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Ingrese su nombre: Santino
Hola Santino
Ingrese su nombre: Santino Hola Santino
Ingrese su nombre: Santino
Hola Santino

Es importante destacar que no funciona con tipos de datos mixtos; para evitar errores, debemos convertir los valores a un tipo compatible antes de realizar la concatenación utilizando funciones específicas de conversión.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var1 = 3 + 5 # 8 (entero)
var2 = "3" + "5" # 35 (cadena)
var3 = 3 + "5" # TypeError
var4 = str(3) + "5" # 35 (cadena)
var5 = 3 + int("5") # 8 (entero)
var1 = 3 + 5 # 8 (entero) var2 = "3" + "5" # 35 (cadena) var3 = 3 + "5" # TypeError var4 = str(3) + "5" # 35 (cadena) var5 = 3 + int("5") # 8 (entero)
var1 = 3 + 5          # 8 (entero)
var2 = "3" + "5"      # 35 (cadena)
var3 = 3 + "5"        # TypeError
var4 = str(3) + "5"   # 35 (cadena)
var5 = 3 + int("5")   # 8 (entero)


En ocasiones, resulta útil determinar la cantidad de caracteres que componen una cadena. A este valor se le conoce comúnmente como “longitud”. La función len() nos permite obtener esta información con facilidad.

Es importante tener en cuenta que len() incluye todos los caracteres, incluso los invisibles, como los espacios en blanco.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
nombre = 'Red-Handed Computer Club'
print(len(nombre)) # se imprime 24
nombre = 'Red-Handed Computer Club' print(len(nombre)) # se imprime 24
nombre = 'Red-Handed Computer Club'
print(len(nombre)) # se imprime 24
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
24
24
24

Para acceder a los caracteres individuales dentro de una cadena, utilizamos subíndices. El primer carácter posee el subíndice 0. Si empleamos subíndices negativos, la cuenta comienza desde el final de la cadena.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cadena = "Aprendemos Python"
print(cadena[0]) # A
print(cadena[2]) # r
print(cadena[-3]) # h
print(cadena[-2]) # o
cadena = "Aprendemos Python" print(cadena[0]) # A print(cadena[2]) # r print(cadena[-3]) # h print(cadena[-2]) # o
cadena = "Aprendemos Python"
print(cadena[0])     # A
print(cadena[2])     # r
print(cadena[-3])    # h
print(cadena[-2])    # o
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
A
r
h
o
A r h o
A
r
h
o


El slicing permite extraer segmentos específicos de una cadena. Para realizar un slicing, utilizamos corchetes [] y especificamos dos índices separados por dos puntos (:) dentro de los corchetes: el índice inicial donde comienza la extracción y el índice final hasta dónde termina la extracción.

Es fundamental recordar que el índice final no se incluye en el segmento extraído, es decir, se realiza una “cortada” desde el inicio hasta el índice antes del final indicado.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Definimos una cadena
frase = "Aprender Python es divertido en Red-Handed Club"
# Subcadena desde el principio hasta el índice 8 (no inclusive)
subcadena = frase[0:8]
print("Subcadena desde el inicio hasta el índice 8:", subcadena)
# Definimos una cadena frase = "Aprender Python es divertido en Red-Handed Club" # Subcadena desde el principio hasta el índice 8 (no inclusive) subcadena = frase[0:8] print("Subcadena desde el inicio hasta el índice 8:", subcadena)
# Definimos una cadena
frase = "Aprender Python es divertido en Red-Handed Club"

# Subcadena desde el principio hasta el índice 8 (no inclusive)
subcadena = frase[0:8]

print("Subcadena desde el inicio hasta el índice 8:", subcadena)
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Subcadena desde el inicio hasta el índice 8: Aprender
Subcadena desde el inicio hasta el índice 8: Aprender
Subcadena desde el inicio hasta el índice 8: Aprender

Una característica notable del slicing es la posibilidad de omitir uno o ambos índices. Si se omite el índice inicial, Python asume que deseamos comenzar desde el inicio de la cadena. Si se omite el índice final, Python asume que queremos extraer hasta el final de la cadena.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
frase = "Aprender Python es divertido en Red-Handed Club"
subcadena = frase[:8] # Subcadena desde el inicio hasta el índice 8 (sin incluirlo)
print("Subcadena desde el inicio hasta el índice 8:", subcadena)
# Imprime Aprender
subcadena = frase[9:] # Subcadena desde el índice 9 hasta el final
print("Subcadena desde el índice 9 hasta el final:", subcadena)
# Imprime Python es divertido en Red-Handed Club
frase = "Aprender Python es divertido en Red-Handed Club" subcadena = frase[:8] # Subcadena desde el inicio hasta el índice 8 (sin incluirlo) print("Subcadena desde el inicio hasta el índice 8:", subcadena) # Imprime Aprender subcadena = frase[9:] # Subcadena desde el índice 9 hasta el final print("Subcadena desde el índice 9 hasta el final:", subcadena) # Imprime Python es divertido en Red-Handed Club
frase = "Aprender Python es divertido en Red-Handed Club"

subcadena = frase[:8] # Subcadena desde el inicio hasta el índice 8 (sin incluirlo)
print("Subcadena desde el inicio hasta el índice 8:", subcadena)
# Imprime Aprender

subcadena = frase[9:] # Subcadena desde el índice 9 hasta el final
print("Subcadena desde el índice 9 hasta el final:", subcadena)
# Imprime Python es divertido en Red-Handed Club
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Subcadena desde el inicio hasta el índice 8: Aprender
Subcadena desde el índice 9 hasta el final: Python es divertido en Red-Handed Club
Subcadena desde el inicio hasta el índice 8: Aprender Subcadena desde el índice 9 hasta el final: Python es divertido en Red-Handed Club
Subcadena desde el inicio hasta el índice 8: Aprender
Subcadena desde el índice 9 hasta el final: Python es divertido en Red-Handed Club

El slicing ofrece aún más posibilidades. Se puede utilizar un tercer parámetro para especificar saltos entre caracteres, lo que permite extraer solo caracteres específicos de la cadena. Por ejemplo, con ::2, se indica a Python que tome cada segundo carácter, comenzando desde el primero hasta el final.

El slicing es una herramienta altamente versátil y poderosa para manipular texto en Python.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
texto = "Red-Handed Computer Club"
subcadena = texto[::2]
print("Subcadena obtenida:", subcadena)
# Imprime RdHne optrCu
texto = "Red-Handed Computer Club" subcadena = texto[::2] print("Subcadena obtenida:", subcadena) # Imprime RdHne optrCu
texto = "Red-Handed Computer Club"
subcadena = texto[::2]
print("Subcadena obtenida:", subcadena)
# Imprime RdHne optrCu
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Subcadena obtenida: RdHne optrCu
Subcadena obtenida: RdHne optrCu
Subcadena obtenida: RdHne optrCu


TAREA PARA EL HOGAR

Crea un programa que solicite al usuario ingresar un texto, luego que cuente la cantidad de caracteres ingresados, para partir luego la cadena exactamente por la mitad.