贴图(lambda x:int(x,16)/256.0,[颜色[1:3],颜色[3:5],颜色[5:7]])

2024-10-01 05:06:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python编写pacman程序。其中一个模块正在处理pacman的图形表示游戏。这个当然有一些主机颜色。以下是清单:

GHOST_COLORS = [] ## establishes a list of ghost colours
GHOST_COLORS.append(formatColor(.9,0,0)) # Red
GHOST_COLORS.append(formatColor(0,.3,.9)) # Blue
GHOST_COLORS.append(formatColor(.98,.41,.07)) # Orange
GHOST_COLORS.append(formatColor(.1,.75,.7)) # Green
GHOST_COLORS.append(formatColor(1.0,0.6,0.0)) # Yellow
GHOST_COLORS.append(formatColor(.4,0.13,0.91)) # Purple

随后将绘制这些颜色:

^{pr2}$

这里是colorToVector:

def colorToVector(color): 
  return map(lambda x: int(x, 16) / 256.0, [color[1:3], color[3:5], color[5:7]])

我想我明白兰达很好。但是我不明白色片是怎么回事:

  1. 集成到(x,16)元组中
  2. 转换为int-->;这应该是不可能的
  3. 然后除以256.0?在

每当我试图在python中创建元组并将其转换为int时,我似乎得到了一个错误。在

我错过了什么?在

任何帮助都将不胜感激。在

PS:当我介绍

print(color) 

以及

print map(lambda x: int(x, 16) / 256.0, [color[1:3], color[3:5], color[5:7]]) 

对于混合,我得到了以下GHOST_COLORS[0]作为颜色的值:

>>#e50000
>>[0.89453125, 0.0, 0.0]

Tags: 模块lambda程序map颜色pacmancolorint
1条回答
网友
1楼 · 发布于 2024-10-01 05:06:07

#e50000是一个字符串,它有7个字符。所以

color[1:3] == "e5" # Hexadecimal value
color[3:5] == "00" # Hexadecimal value
color[5:7] == "00" # Hexadecimal value

现在,一个接一个地传递给lambda函数int(x, 16) / 256.0。现在,x将有{}。int函数的第二个参数告诉我们,第一个参数是以16为基数的。因此,inte5转换为相等的基数10,然后除以256。在

相关问题 更多 >