Entender cómo trabajar con las cadenas en Python es fundamental para la manipulación de textos y datos en muchos proyectos. Desde definir variables hasta aplicar métodos específicos, el uso de strings es una habilidad básica, pero poderosa, que se utiliza en áreas avanzadas como el procesamiento del lenguaje natural (NLP).
¿Cómo se definen las cadenas en Python?
Para crear una cadena en Python, puedes utilizar comillas simples, dobles o triples. Por ejemplo:
Comillas simples: name = 'Carli'
Comillas dobles: name = "Carli"
Comillas triples: name = '''Carli'''
Las comillas triples permiten incluir saltos de línea y espacios en blanco.
¿Cómo se imprime y verifica el tipo de dato de una variable?
Para imprimir el valor de una variable y verificar su tipo, puedes utilizar la función print junto con la función type:
name ='Carli'print(name) # Imprime'Carli'print(type(name)) # Imprime
¿Cómo se indexan las cadenas en Python?
Las cadenas son colecciones ordenadas y accesibles por índices. Puedes acceder a un carácter específico utilizando corchetes:
name ='Carli'print(name[0]) # Imprime'C'print(name[-1]) # Imprime'i'
¿Qué pasa si intentas acceder a un índice que no existe en Python?
Si intentas acceder a un índice fuera del rango de la cadena, Python arrojará un IndexError:
print(name[20]) # GeneraIndexError
¿Cómo se concatenan cadenas?
Puedes concatenar cadenas utilizando el operador + y repetirlas con el operador *:
¿Cómo se consultan la longitud y otras operaciones en cadenas?
Para obtener la longitud de una cadena, se usa la función len:
print(len(name)) # Imprime5
Además, las cadenas tienen métodos específicos como lower(), upper(), y strip():
print(name.lower()) # Imprime'carli'print(name.upper()) # Imprime'CARLI'print(last_name.strip()) # Elimina espacios en blanco al principio y al final
¿Qué importancia tienen las cadenas en áreas avanzadas como el NLP?
El manejo de cadenas es esencial en NLP, donde grandes cantidades de texto deben ser limpiadas y procesadas. Métodos como strip(), lower(), y replace() ayudan a preparar los datos para análisis más complejos.
.count().capitalize().title().swapcase().replace(,).split().strip().lstrip().rstrip().find().index()eval() #Este y el siguiente son super métodos
exec()
Investiga y comenta para qué sirven, así ayudas a otros alumnos e interactúas en la comunidad, además investigar es parte fundamental de la programación, un programados pasa muchísimo tiempo investigando y aprendiendo nuevas tecnologías…
.count() Contar elementos en una lista: Supongamos que tienes una lista llamada mi_lista y quieres saber cuántas veces aparece el número 5 en ella. Puedes usar .count() de la siguiente manera:
mi_lista = [1, 5, 3, 5, 7, 5, 9]
cantidad_cinco = mi_lista.count(5)
print(f"El número 5 aparece {cantidad_cinco} veces en la lista.")
Lo de eval y exec me causó especial curiosidad consulté en ChatGPT. Particularmente, son métodos que ejecutan lo que haya dentro del string. La herramienta me arrojó esto:
eval y exec se consideran "supermétodos" porque permiten la ejecución dinámica de código Python, lo que les confiere un poder y una flexibilidad extraordinarios. Aquí te explico en detalle:
eval(expression)
Funcionalidad: Evalúa una expresión de Python contenida en una cadena y devuelve el resultado.
Uso típico: Se utiliza para evaluar expresiones matemáticas, obtener el valor de variables dinámicas, etc.
Poder: Permite la evaluación de cualquier expresión de Python, lo que significa que puede ejecutar cualquier operación que Python soporte, siempre y cuando sea una expresión (no un bloque de código).
Riesgosexpression = "2 + 3 * 4" result = eval(expression) # result será 14: Si se usa con entrada no controlada del usuario, puede ejecutar código malicioso, ya que puede evaluar cualquier expresión proporcionada.
expression ="2 + 3 * 4"result =eval(expression)# result será 14
exec(code)
Funcionalidad: Ejecuta un bloque de código Python contenido en una cadena. A diferencia de eval, puede ejecutar declaraciones complejas, incluyendo definiciones de funciones, bucles, importaciones, etc.
Uso típico: Se usa para ejecutar código dinámico que puede cambiar en tiempo de ejecución, scripts generados, etc.
Poder: Puede ejecutar cualquier código Python, lo que incluye definiciones de clases, funciones, bucles, y cualquier otra estructura de control.
Riesgoscode = """ def greet(name): print(f'Hello, {name}') """ exec(code) greet('Alice') # Output: Hello, Alice: Similar a eval, si se usa con entrada no controlada, puede ejecutar cualquier código, lo que puede ser muy peligroso. Puede modificar el estado del programa, redefinir funciones, y potencialmente comprometer la seguridad del sistema.
code ="""
def greet(name):
print(f'Hello, {name}')
"""exec(code)greet('Alice')# Output: Hello, Alice
#Capitaliza la primera letra.texto="hola mundo"print(texto.capitalize()) # "Hola mundo"#title()#Capitaliza la primera letra de cada palabra.texto="hola mundo"print(texto.title()) # "Hola Mundo"#strip()#Elimina los espacios en blanco al inicio y al final.texto=" hola "print(texto.strip()) # "hola"#replace(old,new)#Reemplaza partes de la cadena.texto="hola mundo"print(texto.replace("mundo","Python")) # "hola Python"#split(sep)#Divide la cadena en una lista según el separador.texto="hola,mundo,Python"print(texto.split(",")) # ['hola','mundo','Python']#join(iterable)#Une elementos de un iterable en una sola cadena.lista=["hola","mundo"]print(" ".join(lista)) # "hola mundo"#find(sub)#Busca una subcadena y devuelve el índice de su primera aparición.texto="hola mundo"print(texto.find("mundo")) # 5#startswith(prefix) y endswith(suffix)#Verifica si la cadena empieza o termina con una subcadena.texto="hola mundo"print(texto.startswith("hola")) # Trueprint(texto.endswith("mundo")) # True#EjemploCompleto:frase =" Bienvenido a Python! "frase = frase.strip().replace("Python","el mundo de Python").upper()print(frase) # "BIENVENIDO A EL MUNDO DE PYTHON!"
Wow, dude awesome your contributions a tons of thanks for that!
Es increíble, muchas gracias.
Hola amigos, un tip para hacer las cosas mas rapido (VSCode, windows):
Comentar / descomentar segmentos de codigo seleccionado:
Ctrl+KC / Ctrl+KU
Mantener apretado control y presionar secuencialmente K y C en un caso y K y luego U para descomentar.
SALUDOS
Buen tip, aunque yo lo hago con Ctrl + Alt + /
Sacando la barra diagonal desde el teclado alfanumérico presionando la tecla del 7
En mac es Command + /
<u>Aquí les explico un poco qué es un método en Python.</u>
Un método en Python es una función que está asociada a un objeto específico y que puede realizar operaciones o manipulaciones sobre ese objeto. Los métodos se invocan usando la sintaxis objeto.metodo(), donde objeto es la instancia de una clase (por ejemplo, una cadena de texto) y metodo() es la función que se ejecuta sobre ese objeto.
Por ejemplo, en cadena.upper(), upper() es un método que pertenece al objeto cadena, y su función es convertir el contenido de cadena a mayúsculas.
Los métodos permiten manipular y trabajar con los datos contenidos en el objeto de manera más directa y conveniente.
Estos son algunos métodos que se pueden usar para Strings o Cadenas de texto:
upper(): Convierte todos los caracteres de la cadena en mayúsculas.* Ejemplo: "hola".upper() → "HOLA"
lower(): Convierte todos los caracteres de la cadena en minúsculas.* Ejemplo: "HoLa".lower() → "hola"
capitalize(): Convierte el primer carácter de la cadena en mayúscula y el resto en minúsculas.* Ejemplo: "hOLA mUNDO".capitalize() → "Hola mundo"
title(): Convierte el primer carácter de cada palabra en mayúscula.* Ejemplo: "hola mundo".title() → "Hola Mundo"
strip(): Elimina los espacios en blanco al principio y al final de la cadena.* Ejemplo: " hola ".strip() → "hola"
lstrip(): Elimina los espacios en blanco al principio de la cadena.* Ejemplo: " hola".lstrip() → "hola"
rstrip(): Elimina los espacios en blanco al final de la cadena.* Ejemplo: "hola ".rstrip() → "hola"
replace(old, new): Reemplaza todas las ocurrencias de old por new en la cadena.* Ejemplo: "hola mundo".replace("mundo", "Python") → "hola Python"
find(sub): Devuelve el índice de la primera aparición de sub en la cadena, o -1 si no se encuentra.* Ejemplo: "hola".find("o") → 1
count(sub): Devuelve el número de veces que sub aparece en la cadena.* Ejemplo: "hola mundo".count("o") → 2
split(sep): Divide la cadena en una lista de subcadenas utilizando sep como delimitador.* Ejemplo: "hola mundo".split(" ") → ["hola", "mundo"]
join(iterable): Une los elementos de un iterable (como una lista) en una sola cadena, utilizando la cadena como separador.* Ejemplo: " ".join(["hola", "mundo"]) → "hola mundo"
startswith(prefix): Devuelve True si la cadena comienza con prefix.* Ejemplo: "hola mundo".startswith("hola") → True
endswith(suffix): Devuelve True si la cadena termina con suffix.* Ejemplo: "hola mundo".endswith("mundo") → True
isalpha(): Devuelve True si todos los caracteres de la cadena son alfabéticos y la cadena no está vacía.* Ejemplo: "hola".isalpha() → True
isdigit(): Devuelve True si todos los caracteres de la cadena son dígitos y la cadena no está vacía.* Ejemplo: "123".isdigit() → True
isalnum(): Devuelve True si todos los caracteres de la cadena son alfanuméricos (letras o números) y la cadena no está vacía.* Ejemplo: "hola123".isalnum() → True
isspace(): Devuelve True si todos los caracteres de la cadena son espacios en blanco y la cadena no está vacía.* Ejemplo: " ".isspace() → True
swapcase(): Convierte las mayúsculas en minúsculas y viceversa.* Ejemplo: "HoLa".swapcase() → "hOlA"
zfill(width): Rellena la cadena con ceros a la izquierda hasta alcanzar el ancho especificado.* Ejemplo: "42".zfill(5) → "00042"
Espero que les ayude 😁
Mientras vas realizando los ejercicios si desea agregar comentarios en el codigo para pueden usar el simbolo de numeral #
ejemplo:
print(name.strip()) # para eliminar espacio al principio y final.
pd: coloque el comentario al lado pero puede ser en cualquier posicion !
Es muy buena practica tanto para uno mismo como para cualquier otra persona que quiera leer el código. Buen aporte
Epa, that is right!
Una lista de los métodos más utilizados para cadenas (strings) en Python:
lower(): Convierte la cadena a minúsculas.
upper(): Convierte la cadena a mayúsculas.
strip(): Elimina espacios en blanco al inicio y al final.
split(): Divide la cadena en una lista de subcadenas.
join(): Une una lista de cadenas en una sola cadena.
replace(): Reemplaza una subcadena por otra.
startswith(): Verifica si la cadena comienza con una subcadena específica.
endswith(): Verifica si la cadena termina con una subcadena específica.
find(): Busca una subcadena y devuelve su posición.
count(): Cuenta las ocurrencias de una subcadena.
isalpha(): Verifica si todos los caracteres son alfabéticos.
isdigit(): Verifica si todos los caracteres son dígitos.
capitalize(): Convierte el primer carácter a mayúscula.
title(): Convierte la primera letra de cada palabra a mayúscula.
format(): Formatea la cadena con valores especificados.
Muchas gracias! He tomado notas adicionales gracias a tu comentario :)
Indexación
En Python, Se puede acceder a una cadena o una secuencia de caracteres mediante un índice, el primer índice inicia con el número 0 incrementándose hasta llegar al final de la cadena de texto y nos daría acceso a los caracteres de izquierda a derecha.
De la misma forma se puede acceder a los caracteres de derecha a izquierda (de adelante hacia atrás) con índices en negativo comenzando con el -1
text ="Python"print(text[0])# Salida 'P'print(text[-1])# Salida 'n'
Para concatenar con espacios, en vez de utilizar + ' ' +, podemos usar ,, p. ej:
pythonCopiarEditarprint(nombre.lower()) # carliprint(nombre.upper()) # CARLIprint(apellido.strip()) # Quita espacios al inicio y final
📌 ¿Por qué es útil?
Porque cuando trabajás con textos (como en inteligencia artificial o chatbots), necesitás limpiar y entender bien los datos.
Les dejo algunos que consulte:
name = 'carla marcela' # Guarda el texto dentro de la varialble name #
last_name = 'Florida Roman' # Guarda el texto dentro de la varialble last_name #
print (name * 5) #Multiplica la variable name por 5 veces#
print (name + last_name) # Une (Concatena) las variables name y last_name pegagas sin espacio#
print (name + " " + last_name) #+ " espacio " + agrega u espacio entre variables #
print (len (last_name)) # len es una funcion nos da el laro de la variable last_name #
print (len (name)) # len es una funcion nos da el laro de la variable name #
print (name.lower()) # lower es una funcion nos porne la variable name en minisculas#
print (name.upper()) # lower es una funcion nos porne la variable name en mayusculas#
print (last_name.strip()) # strip es una funcion nos quita los especaios en la variable last_name#
print (name.capitalize()) # capitalize es una funcion nos porne la variable name en mayuscula incial#
print (name.title()) # title Devuelve la cadena con el primer carácter de cada palabra en mayúscula#
print (name.count('marcela')) # count D cuenta de las veces que aparece una subcadena en la cadena#
print (name.find('marcela')) # find Devuelve el índice #letras en el que aparece la subcadena
print (name.find('marcel4')) # find Devuelve el índice #letras en el que aparece la subcadena -1 si no aparece
print (name.rfind('marcela')) #Devuelve el índice en el que aparece la subcadena, empezando por el final
Para la concatenación en Python, puedes unir dos cadenas usando el operador +. Por ejemplo:
name ='Karla'last_name ='Marcela'full_name = name +' '+ last_name
print(full_name)# Salida: Karla Marcela
Para la repetición, utiliza el operador *. Por ejemplo:
repeat_name = name *3print(repeat_name)# Salida: KarlaKarlaKarla
Ambas operaciones son esenciales para manipular cadenas en Python y se aplican en diversos contextos, como la creación de textos dinámicos o la generación de estructuras repetitivas.
print(fullname.lower())#Cambia todas las letras del texto a minusculaprint(fullname.upper())#Cambia todas las letras del texto a mayusculaprint(fullname.strip())#Elimina el espacio en blanco antes y despues del textoprint(fullname.capitalize())#Convierte el primer carácter de una cadena a mayúscula y el resto de los caracteres a minúscula.print(fullname.find("Rodriguez"))#Busca una subcadena dentro de otra cadena y te muestra el indice donde comienza la palabra (El índice se refiere a la posición de un carácter)print(fullname.index("Rodriguez"))#Lo mismo que .find con la diferencia que cuando encuentre un error no te regresa el valor -1 sino substring not foundprint(fullname.replace("Rodriguez","Esparza"))#Remplaza todas las ocurrencias de una subcadena con otraprint(fullname.count("a"))#Devuelve el numero de veces que aparece una subcadena en la cadena o dejando el entreparentesis vacio simplente te arroaj la cantidad de indices```Comparto mis apuntes si a alguien le es útil.
Analogía de la Indexación.
Imaginemos un estante lleno de libros. Cada libro tiene un número asignado que indica su posición en el estante:
Índice positivo: Contamos los libros desde izquierda a derecha, comenzando en 0.
Índice negativo: Contamos los libros pero esta vez desde la derecha a la izquierda, comenzando en -1.
Si queremos el segundo libro del estante, usamos entonces estante[1]. Si necesitamos el último libro, entonces estante[-1]. Ahora si deseamos un grupo de libros, podemos decir: "Dame los libros del 2 al 4" con estante[1:4].
Ok, gracias
Saludos, Yulisa.
Debido a unos requerimientos me ha tocado trabajar con python estos últimos meses, me di a la tarea de comenzar con este curso para tener bases más solidas y estoy descubriendo cosas que desconocía, excelente curso y la profesora explica muy bien
Si un string contiene comillas del mismo tipo, utiliza el otro tipo de comillas. Por ejemplo: mensaje = "Ella dijo: 'Hola'"
Esto se recomienda y aclara incluso en el PEP8(Guía oficial de código en Python)
✨✨✨TIP para windows ✨✨✨
Atajo de Teclado para Uso de emojis
Tecla Win + tecla punto (.)
Activa el SELECTOR DE EMOJIS de windows.
Conocer los métodos disponibles de un objeto, por ejemplo, el siguiente String:
"hola"
Si quieres ver los métodos que se le pueden aplicar escribe en la consola interactiva:
dir("hola")
Si tienes un archivo con extensión py puedes usar la instrucción: print(dir("hola"))