Miten saisin koodissa listan kaikista pythonin tuntemista väreistä, esim. "red", "blue", jne?
Tarkoitus on tarkastaa, onko käyttäjän syöttämä merkkijono väri.
Ei kai Python mitään värejä tunne?
Eikös se olisi kaikkein luontevinta tehdä vain merkkijonolista näistä mahdollisista väreistä ja tarkastaa sitä vasten käyttäjän syötettä.
Python ei tunne värejä, mutta tähän tapaan sujuu:
colors = set(['red', 'blue', 'green']) my_color = 'red' if my_color in colors: print '%s is a color' % my_color
for color in colors: print('väri: ' + color + ' löytyy\n')
tkok: print funktiolla on oletuksena rivinvaihto lopussa. Itse tekisin vaikka jotenkin näin:
colors = ["sininen", "punainen"] color_input = str(input("Anna väri: ")) if input in colors: print("Annoit oikean värin") else: print("{} ei ole väri".format(color_input))
Kyllähän mä nyt listoja osaan käydä läpi.
Matplotlibin funktioille voi antaa värejä merkkijonoina, esim. "darkblue". Ideana oli kaivaa esiin kaikki värit, jotka Matplotlib hyväksyy. Kaipaan siis jotakin tapaa kaivaa esiin kaikki Matplolibin tuntemat värit tai jotain iscolor()-funktiota. Ei vaan tunnu millään löytyvän.
Luulis tosin mahdollisuuden värienkin kaivamiseen olevan, kun olemassa olevat colormapitkin saa haettua.
matplotlibin kotisivuilla on demoissa muistaakseni esimerkit väreistä?
http://matplotlib.sourceforge.net/api/
Finally, legal html names for colors, like ‘red’, ‘burlywood’ and ‘chartreuse’ are supported.
Esimerkkien perusteella tarkoitetaan luultavasti X11-värejä, http://en.wikipedia.org/wiki/Web_colors#X11_color_names
Matplotlibin dokumentaatio osasi kertoa että tuetut värien nimet ovat samat kuin html:ssä käytetyt värien nimet.
Lista väreistä löytyy esimerkiksi Matplotlibin lähdekoodista.
Eli tuo taulukko "cnames" näyttäisi sisältävän värien nimet. En osaa Pythonia joten en tiedä että pääseekö tuohon taulukkoon käsiksi ulkoisesta koodista? Jos pääsee niin sittenhän ne värien nimet saisi suoraan tuosta.
Matplotlibin värilistaan pääsee helposti ulkopuolelta käsiksi, ja tarkistuksen voi hoitaa vaikka näin:
import matplotlib vari = "green" if vari in matplotlib.colors.cnames: print "Väri löytyy" else: print "Väriä ei löydy"
Regexillä:
^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
Kuka keksii tyhmemmän vastauksen?
Tyhmempi vastaus (säännöllinen lauseke sekin):
^
Aihe on jo aika vanha, joten et voi enää vastata siihen.