7. Sequencias y diccionarios

7.1. Cadenas

  • Una cadena es una secuencia ordenada de caracteres.
  • Las cadenas se pueden delimitar por:
'Facultad de Ciencias, UNAM'

"Facultad de Ciencias, UNAM"

'''Facultad de
Ciencias, UNAM'''

"""Facultad de
Ciencias ,UNAM"""

Las cadenas no se pueden modificar, son inmutable.

Cada elemento de una cadena esta identificado por un indice

Python

Usamos el operador [ ] para hacer referencia a los elementos de una cadena

>>> facultad = 'Facultad de Ciencias, UNAM'
>>> letra = facultad[1]
>>> letra
'a'
>>> m, n = 12, 19
>>> facultad[m:n]
'Ciencia'
>>> facultad[m:]
'Ciencias, UNAM'
>>> facultad[:n]
'Facultad de Ciencia'

Como recorrer los caracteres de una cadena?

frase = 'Simple is better than complex'
index = 0
while index < len(frase):
    letra = frase[index]
    print(letra)
    index = index + 1

una manera más simple

rase = 'Simple is better than complex'
for letra in frase:
    print(letra)

Los operadores y funciones regresan nuevas cadenas.

operador  
+ frase + “ by Tim Peters”
* frase * 3
in “Python” in frase
== frase == “The Zen”

Los operadores y funciones regresan nuevas cadenas.

operador  
len longitud de la cadena
max el carácter más grande
min el carácter más pequeño

7.1.1. Médotos

Las Cadenas son Objetos de la clase str

Los métodos se llaman:

objeto.metodo(argumentos)
>>> frase = 'the zen of Python'
>>> frase.capitalize()
'The zen of python'
>>> frase.find('Python')
11
>>> frase.upper()
'THE ZEN OF PYTHON'
>>> frase.lower()
'the zen of python'
>>> frase.isalpha()
False
>>> frase.split()
['the', 'zen', 'of', 'python']
>>> '-'.join(['1', '2', '3'])
'1-2-3'

7.1.2. Cifrado de cesar

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

def cifrado_cesar(texto, n=3):
    """
    Cifra un mensaje de texto con un dezplasamiento de longitud n
    :param texto: texto original
    :param n: dezplasamiento
    :return: texto cifrado
    """
    alfabeto = 'abcdefghijklmnopqrstuvwxyz'
    cifrado = ''
    for caracter in texto:
        if caracter in alfabeto:
            indice = (alfabeto.find(caracter) - n) % 25
            cifrado = cifrado + alfabeto[indice]
        else:
            cifrado = cifrado + caracter
    return cifrado


if __name__ == '__main__':
    mensaje = 'nos vemos en prometeo'
    mensaje_ilegible = cifrado_cesar(mensaje)
    print(mensaje_ilegible)

7.1.3. Manejo de Archivos

>>> f = open('mensaje.txt', 'w')
>>> type(f)
<class '_io.TextIOWrapper'>
>>> f.write("nos vemos en prometeo\n")
22
>>> f.write("Lunes 9:00 hrs\n")
15
>>> f.close()
>>> f = open("mensaje.txt", "r")
>>> line1 = f.readline()
>>> type(line1)
<class 'str'>
>>> line2 = f.readline()
>>> f.close()
>>> print(line1, line2)
nos vemos en prometeo
Lunes 9:00 hrs

7.2. Listas

palabras.txt