Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[Python 3]Remplazar un caracter de un string
#1
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
Responder
#2
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
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
(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.
Responder
#4
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"))
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#5
(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.
Responder
#6
(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.
Responder
#7
0x3 y 0x30 son dos números diferentes, equivalen al 3 y al 48 en el sistema decimal, respectivamente.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)