write seqio read descargar bio python django

seqio - Generando un color hexadecimal aleatorio en Python



read fasta python (12)

Almacénelo como un valor de color HTML:

Actualizado: ahora acepta los argumentos de entero (0-255) y flotante (0.0-1.0). Estos serán fijados a su rango permitido.

def htmlcolor(r, g, b): def _chkarg(a): if isinstance(a, int): # clamp to range 0--255 if a < 0: a = 0 elif a > 255: a = 255 elif isinstance(a, float): # clamp to range 0.0--1.0 and convert to integer 0--255 if a < 0.0: a = 0 elif a > 1.0: a = 255 else: a = int(round(a*255)) else: raise ValueError(''Arguments must be integers or floats.'') return a r = _chkarg(r) g = _chkarg(g) b = _chkarg(b) return ''#{:02x}{:02x}{:02x}''.format(r,g,b)

Resultado:

In [14]: htmlcolor(250,0,0) Out[14]: ''#fa0000'' In [15]: htmlcolor(127,14,54) Out[15]: ''#7f0e36'' In [16]: htmlcolor(0.1, 1.0, 0.9) Out[16]: ''#19ffe5''

Para una aplicación Django, a cada "miembro" se le asigna un color para ayudar a identificarlos. Su color se almacena en la base de datos y luego se imprime / copia en el HTML cuando es necesario. El único problema es que no estoy seguro de cómo generar colores Hex aleatorios en python / django. Es bastante fácil generar colores RGB, pero para almacenarlos necesitaría a) hacer tres columnas adicionales en mi modelo de "Miembro" o b) almacenarlas todas en la misma columna y usar comas para separarlas, luego, más adelante, analizar los colores para el HTML. Ninguno de estos es muy atractivo, así que, nuevamente, me pregunto cómo generar colores Hex aleatorios en python / django.


Aquí hay una forma simple:

import random color = "%06x" % random.randint(0, 0xFFFFFF)

Para generar un color aleatorio de 3 caracteres:

import random color = "%03x" % random.randint(0, 0xFFF)

%x en lenguajes basados ​​en C es un formateador de cadenas para formatear enteros como cadenas hexadecimales, mientras que 0x es el prefijo para escribir números en base-16.

Los colores pueden tener el prefijo "#" si es necesario (estilo CSS)


Básicamente, esto te dará un hashtag, un randint que se convierte en hexadecimal y un relleno de ceros.

from random import randint color = ''#{:06x}''.format(randint(0, 256**3)) #Use the colors wherever you need!


Esto se ha hecho antes. En lugar de implementar esto usted mismo, posiblemente introduciendo errores, es posible que desee utilizar una biblioteca lista, por ejemplo, Faker . Eche un vistazo a los proveedores de color , en particular hex_digit .

In [1]: from faker import Factory In [2]: fake = Factory.create() In [3]: fake.hex_color() Out[3]: u''#3cae6a'' In [4]: fake.hex_color() Out[4]: u''#5a9e28''


Hay tantas formas de hacer esto, así que aquí hay una demostración con " colorutils ".

pip instalar colorutils

Es posible generar valores aleatorios en (RGB, HEX, WEB, YIQ, HSV).

# docs and downloads at # https://pypi.python.org/pypi/colorutils/ from colorutils import random_web from tkinter import Tk, Button mgui = Tk() mgui.geometry(''150x28+400+200'') def rcolor(): rn = random_web() print(rn) # for terminal watchers cbutton.config(text=rn) mgui.config(bg=rn) cbutton = Button(text="Click", command=rcolor) cbutton.pack() mgui.mainloop()

Ciertamente espero que haya sido útil.


Para generar algo al azar, mira el módulo al azar.

Le sugiero que use el módulo para generar un número entero aleatorio, tome su módulo 2**24 y trate los 8 bits superiores como R, los 8 bits medios como G y los 8 inferiores como B.
Todo se puede lograr con div / mod o bitwise operaciones.


Simplemente almacénelos como un entero con los tres canales en diferentes desplazamientos de bits (como a menudo se almacenan en la memoria):

value = (red << 16) + (green << 8) + blue

(Si cada canal es 0-255). Almacene ese número entero en la base de datos y realice la operación inversa cuando necesite volver a los distintos canales.


poco tarde a la fiesta,

import random chars = ''0123456789ABCDEF'' [''#''+''''.join(sample(chars,6)) for i in range(N)]


import random def generate_color(): color = ''#{:02x}{:02x}{:02x}''.format(*map(lambda x: random.randint(0, 255), range(3))) return color


import random def hex_code_colors(): a = hex(random.randrange(0,256)) b = hex(random.randrange(0,256)) c = hex(random.randrange(0,256)) a = a[2:] b = b[2:] c = c[2:] if len(a)<2: a = "0" + a if len(b)<2: b = "0" + b if len(c)<2: c = "0" + c z = a + b + c return "#" + z.upper()


import random r = lambda: random.randint(0,255) print(''#%02X%02X%02X'' % (r(),r(),r()))


hex_digits = [''0'',''1'',''2'',''3'',''4'',''5'',''6'',''7'',''8'',''9'',''a'',''b'',''c'',''d'',''e'',''f''] digit_array = [] for i in xrange(6): digit_array.append(hex_digits[randint(0,15)]) joined_digits = ''''.join(digit_array) color = ''#'' + joined_digits