Python - Imprimir un color rgb

 
Vista:
sin imagen de perfil

Imprimir un color rgb

Publicado por Rodrigo (17 intervenciones) el 05/04/2023 18:14:58
Hola, mi código está apuntado a imprimir un color en RGB.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from string import digits
from random import choice
 
 
def rgb_color ():
 
    color = list(digits)
    for n in range(3) :
        rgb = []
        for i in range(3) :
            temp = choice(color)
            rgb.append(temp)
        final_rgb = "".join(rgb)
        print(final_rgb)
 
rgb_color()

El problema es el output, que resulta:

rgb1
rgb2
rgb3

Y yo quiero que salga

rgb1 rgb2 rgb3

Alguien sabe cómo hacerlo??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Imprimir un color rgb

Publicado por tincopasan (1082 intervenciones) el 05/04/2023 20:48:07
hay varias cosas a modificar en ese código, pero para resolver tu duda es tan simple como mostrar sin salto de línea

1
print(final_rgb,end=' ')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Imprimir un color rgb

Publicado por Rodrigo (17 intervenciones) el 05/04/2023 22:06:21
Hola tincopasan! Muchas gracias por tu respuesta, me sirvió aunqe la respuesta real que yo quería para mi output es:

# rgb (rgb1,rgb2,rgb3)

Lo escribí rápido en el posteo inicial.

Otra cosa (y la más importante aún), estoy aprendiendo Python. Me encantaría que postees todo lo que vos veas que se pueda mejorar en el código o inclusive, plantear una solución alternativa para llegar al mismo resultado (es un ejercicio y tengo que usar ciertas herramientas que dimos en la unidad, así que seguro hay mejores maneras de resolverlo).

Cualquier cosa, mi mail es [email protected]

Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imprimir un color rgb

Publicado por Costero (92 intervenciones) el 05/04/2023 22:33:31
1
2
3
final_rgb = ",".join(rgb)
 
print(f"#rgb ({final_rgb})")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Imprimir un color rgb

Publicado por tincopasan (1082 intervenciones) el 06/04/2023 08:55:47
Hola Rodrigo:

soy muy malo explicando pero veamos:

1
from string import digits
no lo estás usando en este script así que es innecesario

1
2
3
4
5
6
from random import sample
 
def rgb_color ():
    return f"#rgb {tuple(sample(range(256),3))}"
 
print(rgb_color())

en vez de usar choice uso sample que devuelve de una lista de elementos un determinado número de elementos en este caso 3
además rgb en formato decimal, que es el que estás usando, tiene valores desde 0 hasta 255, no existe un valor mayor por eso al declarar la lista con range, llega hasta 256 que es un valor que no incluirá.
No es obligatorio, pero las funciones deben devolver algo, no es buena práctica usarlas solo con print,, así que uso return para devolver una cadena formateada y como sample devuelve una lista y en lo que mostraste es una tupla, la convierto con la función tuple.
Después uso print para mostrar lo que devuelve la función, eso es básicamente todo, pero como ves, además del error decimal se resume a una línea la función.
Espero se entienda, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imprimir un color rgb

Publicado por Rodrigo (17 intervenciones) el 06/04/2023 17:02:14
Tincopasan, sos un genio.

Me super sirvió la respuesta, bien explicada (aunque vos creas que no) y me abrió otro juego de resoluciones.

Estoy recien empezando a importar módulos y vengo de aprender bucles, por eso lo hacía así.

Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar