Cadenas #
Las cadenas son secuencias de carácteres. Es decir, una variable de tipo de string puedes acceder a una posición concreta. Es como acceder a una posición de un array o lista. Ejemplo:
texto = "hola"
print("Segunda letra del texto es:", texto[1])
Resultado:
Segunda letra del texto es: o
OJO: Que aquí los arrays también empiezan por 0.
Con la sentencia LEN se puede saber el tamaño de la cadena. Ejemplo:
texto = "hola"
print("Primera letra del texto es: ", texto[0])
longitud = len(texto)
print("Última letra del texto es: ",texto[longitud-1])
Resultado:
Primera letra del texto es: h
Última letra del texto es: a
Como en Javascript la longitud hay que restarle uno para poder acceder al último elemento, o para hacer bucles.
Hay que tener en cuenta que las cadenas no se puede modificar como si se puede hacer en otros lenguajes, solo podemos consultarla. Es decir, esto:
texto="hola"
texto[2]="C"
Da el siguiente error:
TypeError Traceback (most recent call last)
in
1 texto="hola"
----> 2 texto[2]="C"
TypeError: 'str' object does not support item assignment
Bucles #
A las cadenas también se puede acceder haciendo iteracciones. Ejemplo:
Ejemplo:
texto="hola"
n=0
while n < len(texto):
print("Letra: ",texto[n])
n = n + 1
Resultado:
Letra: h
Letra: o
Letra: l
Letra: a
El ejemplo anterior pero usando FOR
texto="hola"
for letra in texto:
print("Letra: ", letra)
Dando el mismo resultado.
Accediendo a las partes de la cadena #
También se puede acceder a trozos de una cadena:
texto="hola mundo"
print("Primera parte: ", texto[0:4])
print("Segunda parte: ", texto[5:10])
Resultado:
Primera parte: hola
Segunda parte: mundo
Operadores en condiciones #
El operador IN se menciona en la página de condiciones pero pongo el ejemplo aquí que es su sitio:
texto="hola"
if "o" in texto:
print("Existe la O")
if "j" in texto:
pass
else:
print("No existe la J")
Resultado:
Existe la O
No existe la J
También se puede usar los < o > para hacer comparaciones por orden alfabético.
Métodos de cadenas #
Las cadenas son también objetos que por defecto tienen su propios métodos. Para saber que métodos tiene un cadena hay que hacer lo siguiente:
texto="hola"
dir(texto)
El resultado no lo pongo porque es muy largo y supongo que los métodos variarán segun la versión de Python usada. Un ejemplo de como se usaría:
texto="hola"
print("texto en minúsculas", texto)
print("texto en mayñusculas", texto.upper())
Resultado:
texto en minúsculas hola
texto en mayñusculas HOLA
Para saber como funciona mejor es irse a la docu oficial de Python.
Formatos #
Para formatear existen nos formas al estilo antiguo o el nuevo. Soy partidario del nuevo porque con el antiguo he tenido algún que otro problema, y lo he tenido que solucionar con nueva manera.
Método antiguo #
Como cadenas se les puede aplicar formatos. El carácters para aplicar formatos es % y a continuación el tipo de valor que se va formtear:
- d –> Decimal
- g –> Flotante
- s –> String
Ejemplo:
texto="ivan"
print("hola %s" % texto)
Resultado:
hola ivan
Se puede sustituir varios valores pero hay que definir una tupla. Ejemplo:
print("hola %s, hoy es dia %d y son las %g" % ("ivan", 5, 16.32))
Resultado:
hola ivan, hoy es dia 5 y son las 16.32
El numero de formatos en la cadena debe coincidir con el número de valores en una tupla para que no de error.
Método nuevo #
El método nuevo se parece a construir un json
texto = "{field}: {message}".format(
field="campo", message="mensaje")
print(texto)
String sin carácteres de escape #
Si queremos inicializar una variable con un ruta de nuestro disco duro como esto:
path = "c:\archivos de programa\test\test.exe"
No se almacene bien porque python por defecto usa el carácter ** como carácter de escape. Si queremos decirle que lo trate como un raw string, es decir, literal sin tranformaciones hay que poner una r delante del literal, tal que así:
path = r"c:\archivos de programa\test\test.exe"