我正在开发一个简单的python程序,它提示用户输入多边形边的长度,程序(使用乌龟)将使用随机设置的随机颜色绘制多边形。 / p> 到目前为止,我的代码是:
import turtle
polygonSideLength = int(input('Enter length of polygon side: \n'))
numberOfSides = 5 + (7 / 4)
turnAngle = 360 / numberOfSides
import random
randomColor = random.randint(0,5)
if randomColor == 0:
fillcolor="red"
elif randomColor == 1:
fillcolor="green"
elif randomColor == 2:
fillcolor="blue"
elif randomColor == 3:
fillcolor="cyan"
elif randomColor == 4:
fillcolor="magenta"
elif randomColor == 5:
fillcolor="yellow"
turtle.begin_fill()
turtle.pen(pensize = 5, pencolor="black", fillcolor = randomColor)
for i in range(numberOfSides):
turtle.forward(polygonSideLength)
turtle.right(turnAngle)
turtle.end_fill()
turtle.done()
我发现代码中的问题是“fillcolor = randomColor”
我收到的错误是“未知的颜色名称:5” 我知道randint正在工作,因为有时错误给了我1,2,3,4,5
总而言之,如何让fillcolor与随机randint中的设定颜色相匹配?
答案 0 :(得分:0)
我同意你选择随机颜色
这一事实randomColor = random.randint(0,5)
但是当您想要将随机颜色设置为多边形时
指定一个整数(randomColor变量的值)而不是字符串(fillcolor变量的值)
fillcolor变量应该是一个带有颜色名称值(“蓝色”,“白色”,“红色”等)的字符串类型,但绝不是整数。
所以请你改变以下一行:
turtle.pen(pensize = 5, pencolor="black", fillcolor = randomColor)
到
turtle.pen(pensize = 5, pencolor="black", fillcolor = fillcolor)
答案 1 :(得分:0)
我同意@stellasia random.choice()
是你最好的选择,但如果你需要使用random.randint()
,这是一种方法:
import turtle
import random
COLORS = ["red", "green", "blue", "cyan", "magenta", "yellow"]
fillcolor = COLORS[random.randint(0, len(COLORS) - 1)]
turtle.pen(pensize=5, pencolor="black", fillcolor=fillcolor)
numberOfSides = 6
turnAngle = 360 / numberOfSides
polygonSideLength = int(input('Enter length of polygon side: '))
turtle.begin_fill()
for _ in range(numberOfSides):
turtle.forward(polygonSideLength)
turtle.right(turnAngle)
turtle.end_fill()
turtle.done()
通过将random.choice()
分配行替换为:
fillcolor
fillcolor = random.choice(COLORS)
颜色选择的另一种方式是完全随机的,使用random.random()
,并将前几行更改为:
import turtle
import random
fillcolor = (random.random(), random.random(), random.random())
turtle.pen(pensize=5, pencolor="black", fillcolor=fillcolor)
...
这里不是颜色名称,而是使用乌龟颜色允许的另一个可能性,即RGB三联,例如:(0.5,0.9,0.1)有两种乌龟RGB三重模式:0.0到1.0,默认使用上面,我们使用turtle.colormode(255)
选择0到255。这意味着我们可以回到使用random.randint()
并且仍然具有完全随机的颜色:
turtle.colormode(255)
fillcolor = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
turtle.pen(pensize=5, pencolor="black", fillcolor=fillcolor)
因此,我们现在有两种完全不同的方法可以使用turtle.randint()
选择随机颜色。