{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"collapsed_sections": [
"P0yItzlzEpdV",
"QphTVwxfH6jD",
"TjtaZ1z5IYzn",
"3wndqwd0JC5Q",
"Tyc3JlEQKFbN",
"WNqR36oPK71e",
"abx2YN7RMRhh",
"58M2zxIiclz9",
"zs5ueMYmcsvT",
"AWyBrqi3Nb1v",
"AOFOZn21OFfm",
"P7_1p5w6O-mA"
]
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"source": [
""
],
"metadata": {
"id": "EC6Cy_snlD-p"
}
},
{
"cell_type": "markdown",
"source": [
"#**Cadenas de Caracteres**"
],
"metadata": {
"id": "P0yItzlzEpdV"
}
},
{
"cell_type": "markdown",
"source": [
"* Las cadenas de caracteres, o *strings*, son una de las estructuras de datos más usadas en programación.\n",
"\n",
"* Son secuencias de caracteres, que incluyen letras (a-z o A-Z), números (0-9), caracteres especiales (%,?,#,+.-,@) y caracteres de control.\n",
"\n",
"* Al ser una secuencia, cada carácter tiene una posición asociada a un índice (número) y siempre comienzan estos índices en la posición cero (0).\n",
"\n",
"* Estas cadenas pueden ser manipuladas y analizadas de varias maneras, se puede leer de izquierda a derecha o viceversa. También se puede leer específicamente determinados índices (posiciones) dentro de la cadena.\n",
"\n",
"Veamos un ejemplo, en la cadena “PUCE Ingeniería” los índices comienzan en 0 y termina en el índice 14. Lo que nos indica que la cadena tiene 15 caracteres.\n",
"\n",
"|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|\n",
"|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\n",
"|P|U|C|E| |I|n|g|e|n|i|e|r|í|a|\n",
"\n",
"**Nota**: observe como el espacio en blanco tiene su ubicación dentro de la cadena de caracteres."
],
"metadata": {
"id": "j4UBE6vME3Vd"
}
},
{
"cell_type": "markdown",
"source": [
"#**Variables cadenas de Caracteres**"
],
"metadata": {
"id": "QphTVwxfH6jD"
}
},
{
"cell_type": "markdown",
"source": [
"En Python, una cadena de caracteres se puede asignar a variables utilizando comillas simples (‘Hola’), comillas dobles (“Juan”) o comillas triples (''''''¿Cómo estás? \"\"\").\n",
"\n",
"Ejemplo: 3 variables de tipo string, a cada variable le hemos dado una cadena distinta y se imprime en pantalla."
],
"metadata": {
"id": "YfjgDlwLIBbi"
}
},
{
"cell_type": "code",
"source": [
"cadena1 = 'Hola'\n",
"cadena2 = \"Juan\"\n",
"cadena3 = \"\"\"¿Cómo estás?\"\"\"\n",
"\n",
"print(cadena1, cadena2, cadena3)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ls5AjIn2IGRB",
"outputId": "0615da71-5284-41fc-de57-59db6781fc8e"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Hola Juan ¿Cómo estás?\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"#**Cadenas de Caracteres individuales**"
],
"metadata": {
"id": "TjtaZ1z5IYzn"
}
},
{
"cell_type": "markdown",
"source": [
"* Los caracteres individuales de una cadena se pueden acceder utilizando el operador de indexación [ ].\n",
"\n",
"* El índice comienza en 0 para el primer carácter. En ocasiones puede ser negativo, permitiendo acceder a los caracteres desde el final de la cadena.\n",
"\n",
"**Longitud de una cadena:**\n",
"\n",
"La función **len()** se utiliza para obtener la longitud de una cadena, es decir, el número total de caracteres que contiene.\n",
"\n",
"|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|\n",
"|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\n",
"|P|U|C|E| |I|n|g|e|n|i|e|r|í|a|"
],
"metadata": {
"id": "bHn6BdiEIdbc"
}
},
{
"cell_type": "code",
"source": [
"c = \"PUCE Ingeniería\"\n",
"print(\"Número de caracteres en la cadena: \", len(c))\n",
"print(\"Índice 1 ->\", c[1])\n",
"print(\"Índice 5 ->\", c[5])\n",
"print(\"Índice 9 ->\", c[9])\n",
"print(\"Índice 14 ->\", c[14])"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "9aDqHtw_Epy6",
"outputId": "47a3f454-d61d-427b-c4ca-58f80b9d5900"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Número de caracteres en la cadena: 15\n",
"Índice 1 -> U\n",
"Índice 5 -> I\n",
"Índice 9 -> n\n",
"Índice 14 -> a\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"#**Concatenación de cadenas de Caracteres**"
],
"metadata": {
"id": "3wndqwd0JC5Q"
}
},
{
"cell_type": "markdown",
"source": [
"* Concatenar es unir dos o más cadenas para formar una nueva cadena.\n",
"* Para concatenar cadenas utilizamos el operador de suma (**+**).\n",
"\n",
"Mira en el ejemplo como hemos concatenado de dos maneras distintas. La primera concatenamos directamente las variables, mientras que en la segunda después de cada una de las variables concatenamos un espacio en blanco ‘ ’. Esto se hace para que el usuario pueda leer y entender el texto."
],
"metadata": {
"id": "4c6kEz6HJcDd"
}
},
{
"cell_type": "code",
"source": [
"cadena1 = 'Hola'\n",
"cadena2 = \"Juan\"\n",
"cadena3 = \"\"\"¿Cómo estás?\"\"\"\n",
"#concatenando variables tipo string\n",
"resultado = cadena1+cadena2+cadena3\n",
"resultado1 = cadena1+' '+cadena2+\" \"+cadena3\n",
"\n",
"print(\"Variable resultado: \", resultado)\n",
"print(\"Variable resultado1: \", resultado1)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "SaPJd8KRI8Qz",
"outputId": "dfb80d34-f442-46cb-f1c0-16e8e29e6d2d"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Variable resultado: HolaJuan¿Cómo estás?\n",
"Variable resultado1: Hola Juan ¿Cómo estás?\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"#**Subcadenas**"
],
"metadata": {
"id": "Tyc3JlEQKFbN"
}
},
{
"cell_type": "markdown",
"source": [
"* Una subcadena es un segmento que fue extraído de la cadena de caracteres.\n",
"* En Python es posible extraer segmentos utilizando la notación de rebanada (slicing). \n",
"\n",
"**Sintaxis Slicing**:\n",
"\n",
">Cadena[**Índice inicial : Índice final**]\n",
"\n",
"**Índice inicial**: índice desde donde se va a extraer la subcadena.\n",
"\n",
"**Índice final**: índice que indica hasta donde realizar la extracción. Es exclusivo, es decir no incluye el índice indicado, sino que extraer hasta el anterior.\n",
"\n",
"En el ejemplo mira la tercera extracción (subcadena 3), no se ha especificado el índice final. Sin embargo, extrae la última palabra. Cuando no se específica el índice final, **Slicing** extraerá desde la posición indicada hasta la última."
],
"metadata": {
"id": "5MEvcFfJKQFc"
}
},
{
"cell_type": "code",
"source": [
"cad = \"Pontificia Universidad Católica del Ecuador\"\n",
"print(cad)\n",
"# extracción de subcadenas\n",
"print(\"subcadena 1:\", cad[11:22])\n",
"print(\"subcadena 2:\", cad[23:31])\n",
"print(\"subcadena 3:\", cad[36:])"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "CFXFJAJzJ_Go",
"outputId": "58fee76e-7ad9-4b59-baef-ec8c7dd5c72c"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Pontificia Universidad Católica del Ecuador\n",
"subcadena 1: Universidad\n",
"subcadena 2: Católica\n",
"subcadena 3: Ecuador\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"#**Métodos de cadenas**"
],
"metadata": {
"id": "WNqR36oPK71e"
}
},
{
"cell_type": "markdown",
"source": [
"* En Python se proporcionan una variedad de métodos que sirven para manipular cadenas.\n",
"\n",
"* Los métodos más comunes son:\n",
"\n",
"* **upper() y lower()**: convierten la cadena a mayúsculas o minúsculas.\n",
"\n",
"* **split()**: divide la cadena en una lista de subcadenas utilizando un delimitador.\n",
"\n",
"* **strip()**: elimina los espacios en blanco al inicio y al final de la cadena.\n",
"\n",
"Mira el resto de los métodos en la documentación propia de Python https://docs.python.org/es/3/library/stdtypes.html#string-methods"
],
"metadata": {
"id": "LKLfqYphLAky"
}
},
{
"cell_type": "code",
"source": [
"#método upper()\n",
"p = \"puce\"\n",
"print(\"Cambia a mayúsculas ->\",p.upper())\n",
"#método split()\n",
"cad = \"Faculatd de Ingeniería PUCE\"\n",
"print(\"Crea una lista ->\",cad.split())\n",
"#método strip()\n",
"x = \" Hola \"\n",
"print(\"Elimina los espacios en blanco ->\",x.strip())"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "HR8ZpLKiK32b",
"outputId": "bc6aa2ea-2ab1-4b62-9316-da2a7072290d"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Cambia a mayúsculas -> PUCE\n",
"Crea una lista -> ['Faculatd', 'de', 'Ingeniería', 'PUCE']\n",
"Elimina los espacios en blanco -> Hola\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"#**Formateo de Cadenas**"
],
"metadata": {
"id": "abx2YN7RMRhh"
}
},
{
"cell_type": "markdown",
"source": [
"* Python ofrece varias formas de formatear cadenas para combinar texto y valores variables.\n",
"\n",
"* Algunos métodos populares son: **format() y f-string**"
],
"metadata": {
"id": "BdZ6NPUJMWCU"
}
},
{
"cell_type": "markdown",
"source": [
"##**format()**"
],
"metadata": {
"id": "58M2zxIiclz9"
}
},
{
"cell_type": "code",
"source": [
"#Usando el método format()\n",
"estudiante = \"Margarita Carrión\"\n",
"facultad = \"Ingeniería\"\n",
"saludo = \"{}, ¡Bienvenid@ a la facultad de {}!\".format(estudiante, facultad)\n",
"print(saludo)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "gdVBdzv9MNSG",
"outputId": "637fef2b-f980-4512-fce9-b27ca18c5815"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Margarita Carrión, ¡Bienvenid@ a la facultad de Ingeniería!\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"##**f-string()**"
],
"metadata": {
"id": "zs5ueMYmcsvT"
}
},
{
"cell_type": "code",
"source": [
"#Usando el formato f-string\n",
"estudiante1 = \"Eduardo Pinos\"\n",
"facultad1 = \"Medicina\"\n",
"saludo = f\"{estudiante1}, ¡Bienvenid@ a la facultad de {facultad1}!\"\n",
"print(saludo)"
],
"metadata": {
"id": "m9_dwcYWctLI",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "391e7490-3f16-429a-80c5-674499e77b2c"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Eduardo Pinos, ¡Bienvenid@ a la facultad de Medicina!\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"#**Resumen manejo de Cadenas de caracteres**"
],
"metadata": {
"id": "AWyBrqi3Nb1v"
}
},
{
"cell_type": "markdown",
"source": [
"Mira la siguiente tabla, en ella puedes ver algunos de los métodos y sintaxis usadas para manipular cadenas."
],
"metadata": {
"id": "3Y7913_wNgbe"
}
},
{
"cell_type": "markdown",
"source": [
""
],
"metadata": {
"id": "jEa-W1qSN_5C"
}
},
{
"cell_type": "markdown",
"source": [
"#**Ejemplo 1**"
],
"metadata": {
"id": "AOFOZn21OFfm"
}
},
{
"cell_type": "markdown",
"source": [
"Crea un programa que permita determinar entre dos frases cuál tiene mayor longitud (más caracteres). Permite al usuario ingresar las dos frases por teclado."
],
"metadata": {
"id": "Zxs1OLY7OMJ-"
}
},
{
"cell_type": "code",
"source": [
"#Ingreso de datos\n",
"cadena1 = input(\"Ingresa la primera fase \")\n",
"cadena2 = input(\"Ingresa la segunda fase \")\n",
"#obtener la longitud de cada cadena\n",
"l1 = len(cadena1)\n",
"l2 = len(cadena2)\n",
"#comparo las longitudes\n",
"if l1Ejemplo 2**"
],
"metadata": {
"id": "P7_1p5w6O-mA"
}
},
{
"cell_type": "markdown",
"source": [
"Crea un programa que permita contar las vocales que contiene una frase ingresada por el usuario. Considera como vocal, aquellas que estén en mayúsculas, tildadas o con diéresis."
],
"metadata": {
"id": "NI9jlZNHPBdj"
}
},
{
"cell_type": "code",
"source": [
"# Creo una variable con las vocales con y sin tíldes y diéresis\n",
"vocales = \"aeiouáéíóúü\"\n",
"# Creo otra variable para contabilizar las vocales\n",
"contador = 0\n",
"# Y una última para guardar la frase transformada a minúsculas, inicializada con vacío\n",
"c =\"\"\n",
"\n",
"#Ingreso la cadena\n",
"cad = input(\"Ingrese una frase \")\n",
"#Transformo la cadena a minúsculas\n",
"c = cad.lower()\n",
"#Uso un bucle para leer caracter por caracter\n",
"for i in range(len(c)):\n",
" if(c[i] in vocales):\n",
" contador = contador + 1\n",
"#Imprimo el resultado\n",
"print(f\"La frase {cad} tiene {contador} vocales\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "TZxeXw6DOw8W",
"outputId": "395b413b-4e8f-4bc3-fb4d-19a64d27988c"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Ingrese una frase Güitig un milagro de la naturaleza\n",
"La frase Güitig un milagro de la naturaleza tiene 14 vocales\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"#**Práctica 1**\n",
"Crea un programa que permita mediante un menú saber el número de consonantes, espacios en blanco y/o caracteres especiales encontrados en la frase ingresada por teclado."
],
"metadata": {
"id": "A8h3KD07Rrxm"
}
},
{
"cell_type": "code",
"source": [
"# ******************************\n",
"# * Resuelve aquí tu ejercicio *\n",
"# ******************************"
],
"metadata": {
"id": "xl7jCWTgRNY7"
},
"execution_count": null,
"outputs": []
}
]
}