如何在 python 乌龟中获得不同的颜色

How to get different colors in python turtle

你好,我正在写一个 python 乌龟文件,其中一个函数将 return 一种随机颜色(我可以选择任意三种),然后一个函数将在屏幕上的任意位置绘制一张脸.它调用函数绘制人脸 5 次,每次选择不同的颜色。我什么都有,它打印了一张脸,但它只会以一种颜色打印,我不确定如何让它每次都打印不同的颜色。

这是我的代码:

import turtle
import random

window = turtle.Screen() 

sam = turtle.Turtle() 
sam.pensize(3)

def getColor():
    color = random.randint(1,3)
    if color == 1:
        sam.fillcolor("pink")
        return "Color: Pink"
    elif color == 2:
        sam.fillcolor("lightblue")
        return "Color: Light Blue"
   else:
        sam.fillcolor("purple")
        return "Color: Purple" 

def drawFace(x,y):
    move = random.randint(1,2)
    if move == 1:
        sam.penup()
        sam.left(x)
        sam.forward(y)
        sam.pendown()

    else:
        sam.penup()
        sam.right(x)
        sam.forward(y)
        sam.pendown()

    sam.begin_fill()
    sam.right(90)
    sam.forward(10)
    sam.left(40)
    sam.forward(30)
    sam.left(50)
    sam.forward(90)
    sam.left(60)
    sam.forward(20)
    sam.left(30)
    sam.forward(10)
    sam.left(90)
    sam.forward(118)
    sam.end_fill()

    sam.penup()
    sam.right(90)
    sam.forward(50)
    sam.right(90)
    sam.forward(40)
    sam.pendown()

   sam.begin_fill()
   sides = 4
   while sides > 0:
        sam.forward(20)
        sam.right(90)
        sides = sides - 1
   sam.end_fill()

   sam.penup()
   sam.forward(60)
   sam.right(90)
   sam.pendown()

   sam.begin_fill()
   sides = 4
   while sides > 0:
      sam.forward(20)
      sam.right(90)
      sides = sides - 1
   sam.end_fill()



print(getColor())
drawFace(40,50)
drawFace(90,100)
drawFace(30,200)
drawFace(280,50)
drawFace(90,100)

谢谢

getColor() 仅在程序开始时被调用一次。在绘制每张脸之前,您需要调用 getColor(),如下所示:

print(getColor())
drawFace(40,50)
print(getColor())
drawFace(90,100)
print(getColor())
drawFace(30,200)
print(getColor())
drawFace(280,50)
print(getColor())
drawFace(90,100)

如果您在循环中编写代码,您的代码会更简洁一些:

points = [(40,50), (90,100), (30,200), (280,50), (90,100)]

for x,y in points:
    print(getColor())
    drawFace(x, y)

或者您可以从您的 drawFace() 拨打电话 getColor()

我所知道的最简单的方法是执行起始代码:

import turtle

draw = turtle.Turtle()

draw.speed(1)

然后是颜色

draw.pencolor("blue")