133 lines
3.3 KiB
Python
133 lines
3.3 KiB
Python
|
"""
|
||
|
Strings: ordenados, inmutables, representan texto
|
||
|
"""
|
||
|
|
||
|
# creación
|
||
|
mi_string = "Hello World"
|
||
|
mi_string = 'Hello World'
|
||
|
mi_string = "Tengo una ' dentro"
|
||
|
mi_string = 'Tengo una \' dentro'
|
||
|
mi_string = """Hello
|
||
|
World"""
|
||
|
|
||
|
# sin salto de linea
|
||
|
mi_string = """Hello \
|
||
|
World"""
|
||
|
|
||
|
# acceder a substrings por índice
|
||
|
mi_char = mi_string[0] # W
|
||
|
|
||
|
# índice negativo (-1)
|
||
|
mi_char = mi_string[-1] #d
|
||
|
|
||
|
# los string son inmutables
|
||
|
try:
|
||
|
mi_string[0] = 'h'
|
||
|
msg = mi_string[0]
|
||
|
except TypeError as TE:
|
||
|
msg = TE
|
||
|
finally:
|
||
|
print(msg)
|
||
|
# 'str' object does not support item assignment
|
||
|
|
||
|
# slicing
|
||
|
sub_string = mi_string[1:5] # ello
|
||
|
# step
|
||
|
sub_string = mi_string[::2] # HloWrd
|
||
|
# step negativo
|
||
|
sub_string = mi_string[::-1] # dlroW olleH
|
||
|
|
||
|
nombre, saludo= 'Roberte', 'Hola'
|
||
|
# concatenación +
|
||
|
frase = saludo + ' ' + nombre # Hola Roberte
|
||
|
|
||
|
# itrerar string
|
||
|
for l in frase:
|
||
|
pass
|
||
|
|
||
|
# verificar si una letra es parte del string
|
||
|
if 'e' in frase:
|
||
|
pass
|
||
|
|
||
|
mi_string = ' Hola Mundo '
|
||
|
# remover espacios con strip()
|
||
|
mi_string = mi_string.strip() # 'Hola Mundo'
|
||
|
# strip() no modifica al string, para guardar se debe asignar
|
||
|
|
||
|
# upper()
|
||
|
mi_string = mi_string.upper() # HOLA MUNDO
|
||
|
|
||
|
# lower()
|
||
|
mi_string = mi_string.lower() # hola mundo
|
||
|
|
||
|
# startswith(): retorna True si el string
|
||
|
# comienza con el string pasado como argumento
|
||
|
mi_string.startswith('h') # True
|
||
|
|
||
|
# endswith(): retorna True si el string
|
||
|
# termina con el string pasado como argumento
|
||
|
mi_string.endswith('ndo') # True
|
||
|
|
||
|
# find(): retorna el índice de la primera coincidencia
|
||
|
# el sub-string pasado como argumento, si no lo encuentra
|
||
|
# retorna -1
|
||
|
mi_string.find('o') # 1
|
||
|
|
||
|
# count(): retorna la cuenta de existencias del sub-string
|
||
|
# pasado como argumento
|
||
|
mi_string.count('ol')
|
||
|
|
||
|
# replace(): reemplaza un sub-string con el sub-string
|
||
|
# pasado como argumento, retona un nuevo string, no reemplaza
|
||
|
# al orignal
|
||
|
mi_string.replace('mundo', 'Universo') # 'hola Universo'
|
||
|
# si no encientra el sub-string solo devuelve el original
|
||
|
|
||
|
# split(): divide el string según el sub-string pasasdo
|
||
|
# como argumento, ' ' por defecto
|
||
|
# devuelve una lista
|
||
|
mi_lista = mi_string.split() # ['hola', 'Universo']
|
||
|
|
||
|
# crear string con join()
|
||
|
nuevo_str = ' '.join(mi_lista)
|
||
|
|
||
|
from timeit import default_timer as timer
|
||
|
mi_lista = ['a'] * 100000000
|
||
|
|
||
|
start = timer()
|
||
|
mi_string = ''
|
||
|
# forma incorrecta, evitar
|
||
|
for i in mi_lista:
|
||
|
mi_string += i
|
||
|
|
||
|
total = timer() - start
|
||
|
total = round(total, 3)
|
||
|
print('la forma incorrecta demoró:\n\t', total, 'segundos')
|
||
|
# 10.632 segundos
|
||
|
|
||
|
start = timer()
|
||
|
mi_string = ''
|
||
|
# forma correcta
|
||
|
mi_string = ''.join(mi_lista)
|
||
|
|
||
|
total = timer() - start
|
||
|
total = round(total, 3)
|
||
|
print('join() demoró:\n\t', total, 'segundos')
|
||
|
# 0.568 segundos
|
||
|
|
||
|
var1, var2, var3, var4 = 'Antuco', 5, 3.123456, True
|
||
|
|
||
|
# formateo de string f"% " %
|
||
|
mi_string = "las variables son %s, %d, %d, %.2f, %r" % (var1, var2, var3, var3, var4)
|
||
|
# las variables son Antuco, 5, 3, 3.12, True
|
||
|
|
||
|
# formateo de string format()
|
||
|
mi_string = "las variables son {}, {}, {:.2f}, {}, {}".format(var1, var2, var3, var3, var4)
|
||
|
# las variables son Antuco, 5, 3.123456, 3.12, True
|
||
|
|
||
|
# metodo recomendado
|
||
|
# formateo de string f" {var}"
|
||
|
mi_string = f"las variables son {var1}, {var2*5}, {round(var3, 2)}, {var3}, {var4}"
|
||
|
# permite operar sobre las variables ej. var2 y var3
|
||
|
# las variables son Antuco, 25, 3.123456, 3.12, True
|