Strings
General
Considere frase = 'Solo vuela el que se atreve a hacerlo'
- ¿Cuál es la longitud de este string?
- ¿Cuáles son los índices válidos?
- ¿Cómo se expresa siempre el mayor índice en términos de la longitud?
- ¿Cómo completaría el siguiente while para recorrer todos los índices del string?
i = 0 while i < ???: i += 1
Solución
- \(37\)
- De \(0\) a \(36\) o de \(-37\) a \(-1\)
len(frase) - 1-
i = 0 while i < len(frase): i += 1
Casting
- ¿Podemos convertir el string
"23515"a unint? ¿cómo? - ¿Podemos hacer lo mismo con
"veintitrés mil quinientos quince"?
Solución
int("23515")- No directamente.
Tabla ASCII y orden lexicográfico
¿Cuál es el resultado de estas comparaciones?. Considere la Tabla ASCII.
'perro' < 'gato''perro' == 'Perro''perro' < 'Perro'
Solución
False,'p'no está antes que'g'.False, diferencia la mayúscula.False, las mayúsculas van primero en ASCII.
Inmutabilidad
- ¿Qué imprime el siguiente programa?
nombre = 'Juan Carlos Bodoque' nombre.upper() print(nombre) - ¿qué hace esto?
print(nombre[3]) - ¿y esto?
nombre[3] = 'A'
Solución
Juan Carlos Bodoque. Para que tenga efecto el método utilizado hay que cambiar el código a:nombre = 'Juan Carlos Bodoque' nombre = nombre.upper() print(nombre)n- Produce un error. Los
stringsson inmutables.
Pertenencia
¿Cuál es el resultado en las siguientes instrucciones?
-
vocales = 'aeiou' 'e' in vocales 'E' in 'perro''pollo' in 'Vaca Pollo Cerdo Tomate Lechuga Repollo Zapallo'
Solución
TrueFalseTrue
Recuperación de elementos
Suponga texto = 'gato grande, negro y gordo'
- ¿Qué retorna
texto[4]? - ¿
len(texto[5:8])? - ¿
texto[:4]? - ¿
texto[-5:]?
Solución
' '3'gato''gordo'
Recorrido de strings: for
- ¿Qué realiza el siguiente programa?
texto = 'gato grande, negro y gordo' for x in texto: if x in 'aeiou': print(x) - ¿Cómo lo hacemos con
whileen vez defor?
Solución
- Muestra las vocales que hay en el texto.
-
texto = 'gato grande, negro y gordo' i = 0 while i < len(texto): if texto[i] in 'aeiou': print(texto[i]) i += 1
Otros métodos para strings
replace
texto.replace(buscado, nuevo)
Retorna un nuevo string a partir de texto, pero reemplazando todas las ocurrencias de buscado por nuevo. Si no existe,
retorna el string original texto.
Ejemplo
texto = 'hola'
texto = texto.replace('o', 'x')
print(texto) # hxla
index
texto.index(buscado)
Retorna el índice de la primera ocurrencia de buscado dentro de texto. Si no existe produce un error.
Ejemplo
print('hola mundo'.index('o')) # 1
Métodos y funciones
La característica que diferencia a los métodos de las funciones es la forma de llamarlos. En una función aplicada a un string, como len(s), se escribe el nombre de la función y el string va dentro de los paréntesis. En un método aplicado a un string, se comienza con el string, seguido de un punto, seguido del nombre del método y dentro de los paréntesis se incluyen parámetros adicionales.
Ruteo
Rutear el siguiente programa para el texto: 'En un lugar de La Mancha'. Indicar además,
con pocas palabras, la tarea que lleva a cabo.
texto = input('Texto: ')
inicio = True
convertido = ''
for c in texto:
if inicio:
convertido = convertido + c.upper()
inicio = False
elif c == ' ':
inicio = True
else:
convertido = convertido + c
print(convertido)