gpt4 book ai didi

python - map (lambda x : int(x, 16)/256.0,[颜色[1 :3], 颜色[3 :5], 颜色[5:7]])

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:20 25 4
gpt4 key购买 nike

我正在研究用 python 编写的 pacman 程序。其中一个模块是处理吃 bean 游戏的图形表示。这当然是一些主机颜色。列表如下:

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

这些颜色随后被映射:

GHOST_VEC_COLORS = map(colorToVector, GHOST_COLORS)

这里是 colorToVector:

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

我想我了解 lambda 的工作原理。但是我对颜色切片的方式感到困惑:

  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]

最佳答案

#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 将有 e5int 函数的第二个参数表明,第一个参数基于 16 进制。因此,inte5 转换为等效的 10 进制数,然后它除以 256。

关于python - map (lambda x : int(x, 16)/256.0,[颜色[1 :3], 颜色[3 :5], 颜色[5:7]]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20441958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com