cadenas
[Link]. Elizabeth Pommier Gallo
Cadenas
palabra= “compilador"
letra = compilador[1]
print (letra)
La expresión compilador1 selecciona el carácter número 1 de compilador. La variable letra apunta al
resultado. Cuando mostramos letra, nos encontramos con una sorpresa: o
Las posiciones se enumeran desde el 0
c posición 0
o posición 1
m posición 2
p posición 3
i posición 4
l posición 5
a posición 6
d posición 7
o posición 8
r posición 9
Ejemplo
palabra = "compilador"
indice = 0
while indice < len(palabra):
letra = palabra[indice]
print (letra, indice)
indice += 1
Longitud de una cadena
La función len devuelve el número de caracteres de una cadena:
print("EJEMPLOS DE CADENAS")
palabra = input("Escriba una palabra: ")
indice = 0
while indice < len(palabra):
letra = palabra[indice]
print (letra, indice)
indice += 1
prefijos
La concatenación y un bucle for para generar una serie abecedaria.
“Abecedaria” se refiere a la serie o lista en la que cada uno de los elementos aparece en orden
alfabético. Por ejemplo, en el libro de Robert McCloskey Make Way for Ducklings, los nombres de los
patitos son Jack, Kack, Lack, Mack, Nack, Ouack, Pack, y Quack. Este bucle muestra esos nombres en
orden:
prefijos = "JKLMNOPQ“
sufijo = "ack“
for letra in prefijos:
print (letra + sufijo)
Porciones de cadenas
Si se tiene una cadena, se puede obtener porciones colocando los rangos de los
punteros, colocando su inicio y su final
s = "Pedro, Pablo, y Mario“
print (s[0:5])
print (s[7:12])
print (s[16:21])
operador [n:m]
El operador [n:m] devuelve la parte de la cadena desde el “n-ésimo” carácter
hasta el “m-ésimo”, incluyendo el primero pero excluyendo el último. Este
comportamiento contradice a nuestra intuición; tiene más sentido si imagina los
índices señalando entre los caracteres, como en el siguiente diagrama:
s = "Pedro, Pablo, y Mario"
print (s[:8])
print (s[7:])
print (s[16:21])
Comparación de cadenas
Los operadores de comparación trabajan sobre cadenas. Para ver si dos cadenas son iguales:
print("EJEMPLOS DE CADENAS")
palabra = input("Escriba una palabra: ")
word="progra"
if palabra < "programa":
print ("Su palabra,"+ palabra + ", va antes de programa.")
elif word > "banana":
print ("Su palabra," + palabra + ", va después de programa.")
else:
print ("Sí, ¡hay programa!") print("EJEMPLOS DE CADENAS")
palabra = input("Escriba una palabra: ")
word="progra"
if palabra == "programa":
print ("Sí, la palabra es programa!")
if palabra < "programa":
print ("Su palabra,"+ palabra + ", va antes de programa.")
elif word > "banana":
print ("Su palabra," + palabra + ", va después de programa.")
else:
print ("Sí, ¡hay programa!")
Python toma a las palabras con letras mayúsculas delante de las minisculas, por ejemplo: Cebra va antes de banana
Las cadenas son inmutables
Las cadenas son inmutables, lo que significa que no puede cambiar una cadena
existente. Lo más que puede hacer es crear una nueva cadena que sea una
variación de la original:
saludo = "¡Hola todo el mundo!"
nuevoSaludo = '¡' + 'L' + saludo[3:]
print nuevoSaludo
operador in
Combinando el operador in con la concatenación de cadenas usando +, podemos escribir una función
que elimina todas las vocales de una cadena:
def elimina_vocales(s):
vocales = "aeiouAEIOU"
s_sin_vocales = ""
for letra in s:
if letra not in vocales:
s_sin_vocales += letra
return s_sin_vocales
x="abecedario"
print (elimina_vocales(x))
función encuentra
encuentra es lo contrario del operador []. En lugar de tomar un índice y extraer el
carácter correspondiente, toma un carácter y encuentra el índice donde aparece el
carácter. Si el carácter no se encuentra, la función devuelve -1
import string
def encuentra(cadena, carac):
indice = 0
while indice< len(cadena):
if cadena[indice] == carac:
return indice
indice += 1
return -1
x="abecedario"
b="b"
print(encuentra(x,b))
Iterando y contando
Cuenta el número de veces que aparece la letra a en una cadena
word = "Programa"
cuenta = 0
for carac in word:
if carac == 'a':
cuenta += 1
print (cuenta)
Comandos en librería string
Para averiguar más sobre un objeto de la lista, podemos usar el comando type.
Se especificar el nombre del módulo seguido por el objeto usando la notación
punto. Puesto que [Link] es una cadena, podemos mostrarla para ver qué
contiene:
import string
dir(string)
type([Link])
print ([Link])