Mensajes: 53
Temas: 23
Registro en: Aug 2018
Reputación:
0
Hola, tengo este string: "x1b[;36m". Me gustaría reemplazar el 3 por 4.
Pero también tengo esta variable: "x1b[1;36m", la cual también debo reemplazar el 3 por 4.
Esto debo ponerlo dentro de esta función:
Código: [code]
def textbackground(bgcolor):
"""
Put 4 bit color to background
"""
puts(bgcolor)
[/code]
También tengo esta variable, pero esta en 0x4, le tengo que añadir un cero, lo cual no he logrado...
Saludos
Mensajes: 1.306
Temas: 3
Registro en: Feb 2016
Reputación:
71
Hola, podés usar el método replace() de las cadenas.
Está ejemplificado en este artículo: https://recursospython.com/guias-y-manua...s-cadenas/.
Saludos
Mensajes: 53
Temas: 23
Registro en: Aug 2018
Reputación:
0
07-09-2018, 09:52 PM
(Última modificación: 08-09-2018, 05:59 PM por konniskatt.)
(07-09-2018, 09:33 PM)Francisco escribió: Hola, podés usar el método replace() de las cadenas.
Está ejemplificado en este artículo: https://recursospython.com/guias-y-manua...s-cadenas/.
Saludos
Gracias, pero se da la situacion de que si se tiene una string como esta: "\x1b[1;33m", reemplazará ambos 3, y solo se debe reemplazar el primer 3.
Mensajes: 1.306
Temas: 3
Registro en: Feb 2016
Reputación:
71
08-09-2018, 07:18 PM
(Última modificación: 08-09-2018, 07:18 PM por Francisco.)
Entonces podés inventar algo así:
Código: def replace_first(s, a, b):
index = s.find(a)
if index == -1:
return s
return "".join((s[:index], b, s[index + 1:]))
print(replace_first("x1b[;36m", "3", "4"))
print(replace_first("x1b[1;36m", "3", "4"))
Mensajes: 53
Temas: 23
Registro en: Aug 2018
Reputación:
0
(08-09-2018, 07:18 PM)Francisco escribió: Entonces podés inventar algo así:
Código: def replace_first(s, a, b):
index = s.find(a)
if index == -1:
return s
return "".join((s[:index], b, s[index + 1:]))
print(replace_first("x1b[;36m", "3", "4"))
print(replace_first("x1b[1;36m", "3", "4"))
Muchas gracias, y en especial a su paciencia.
Mensajes: 53
Temas: 23
Registro en: Aug 2018
Reputación:
0
(08-09-2018, 07:18 PM)Francisco escribió: Entonces podés inventar algo así:
Código: def replace_first(s, a, b):
index = s.find(a)
if index == -1:
return s
return "".join((s[:index], b, s[index + 1:]))
print(replace_first("x1b[;36m", "3", "4"))
print(replace_first("x1b[1;36m", "3", "4"))
Por cierto, se me olvidaba, como para añadirle un 0 a un valor hexadecimal?
Ej: Tenemos la variable a = 0x3, y quisiera añadirle un 0 mas para que quede como 0x30.
Cuando se hace cualquier operación con un hexadecimal, (que es un integer), el 0x se elimina.
Mensajes: 1.306
Temas: 3
Registro en: Feb 2016
Reputación:
71
0x3 y 0x30 son dos números diferentes, equivalen al 3 y al 48 en el sistema decimal, respectivamente.
|