下面可能做你想要的东西 - 还没有在前面的讨论中被提及的一个问题是turtle.colormode()
影响你是否希望整数或浮点数输入:
from turtle import Turtle, Screen
def input_rgb(prompt=""):
triple = None
text = prompt + "Enter comma-separated RGB values: "
while True:
try:
triple_string = input(text).split(',', maxsplit=2)
if len(triple_string) != 3:
continue
if isinstance(screen.colormode(), float):
triple = map(float, triple_string)
else:
triple = map(int, triple_string)
except ValueError:
continue
break
return triple
screen = Screen()
yertle = Turtle(shape="turtle")
yertle.fillcolor(input_rgb("Fill color? "))
yertle.pencolor(input_rgb("Outline color? "))
yertle.begin_fill()
yertle.circle(100)
yertle.end_fill()
screen.exitonclick()
用法
% python3 test.py
Fill color? Enter comma-separated RGB values: 1.0,0.0,0.0
Outline color? Enter comma-separated RGB values: 0.0,0.0,1.0
输出
(你)的下一个挑战是转换input_rgb()
用乌龟图形输入程序,而不是input()
:
turtle.textinput(title, prompt)
turtle.numinput(title, prompt, default=None, minval=None, maxval=None)
我只是想让你知道,我现在已经解决了这个问题。我通过将RGB值分成三个不同的int来实现这一点,并要求用户输入三个不同的值。 –