检查字符串是否定义了颜色

nom*_*432 7 python colors

我正在寻找一种方法来检查字符串是否定义了颜色,因为我的程序依赖于用户输入颜色,并且当他们输入错误的颜色时它会中断。我怎样才能做到这一点?这里有些例子:

check_color("blue") > True
check_color("deep sky blue") > True
check_color("test") > False
check_color("#708090") > True
Run Code Online (Sandbox Code Playgroud)

Jen*_*aKh 9

以下是使用 matplotlib 检查字符串是否定义颜色的方法:

>>> from matplotlib.colors import is_color_like
>>>
>>> is_color_like('red')
True
>>> is_color_like('re')
False
>>> is_color_like(0.5)
False
>>> is_color_like('0.5')
True
>>> is_color_like(None)
False
>>>
>>> matplotlib.colors.__file__
'/usr/lib/python2.7/site-packages/matplotlib/colors.py'
Run Code Online (Sandbox Code Playgroud)

在 matplotlib.colors 模块的源代码中是这样写的:

该模块还提供用于检查对象是否可以解释为颜色 (:func: is_color_like)、将此类对象转换为 RGBA 元组 (:func: to_rgba) 或#rrggbb格式 (:func : ) 的类似 HTML 的十六进制字符串的 函数: to_hex),以及一个(n, 4) RGBA 数组 (:func: to_rgba_array)的颜色序列。缓存用于提高效率。